首页 > 系统相关 >shell基础

shell基础

时间:2023-02-02 09:55:49浏览次数:42  
标签:bin 文件 shell read 基础 空格 array

shell开头

#!/bin/bash
#!/bin/sh
#!/usr/bin/awk
#!/usr/bin/env python
#!/usr/bin/perl

这几行在第一行,不再第一行就是注释
不用的话就用相关解释器带上文件名执行
在写脚本的时候如果不加前面的也会交给bash解释,但是还是指定解释器比较好

注意点一

定义变量名的时候等号旁边没有空格

要在登录后显示初始化内容可以将脚本文件放到 /etc/profile.d/

的下面或者是更改/etc/motd 文件

单引号中`` 命令无效

当参数大于9个要使用${}方式

touch 主要是用来更新时间的....

使用cat连接两个文件

ln -s 源文件 快捷方式 s表示链接

有多个命令就使用;号,若将输出全都重定向用{}扩起来,{}是父shell,()是子shell

注意点二

read读到换行符为止,所以就使用循环可以将文件读完,不然好像只能读一行
黑洞/dev/null 了解一下-.-
cp mv rm 加上-i 进行确认
`command` == $(command)
`read file` 是要求用户输入并且保存到file变量中...
`read -p "" ver `就像scanf一样..(我下所的)
readonly xxx=1 或者readonly xxx(已定义) 表示只读无法改变包括unset
用重定向代替输入

shell中0给了stdin 1给了stdout 2给了stderr

其余数字可以来关联输出文件 例如文件中>&3 命令用3>文件 输出到文件中

exec 将文件关联
paste两个文件连接
tr替换
if空格[] while空格:

expand unexpand 将tab 转换成空格 一般只早开头 使用-a 替换全部

unset 消除定义的变量

${array[*]} == ${array[@]} ""${array[*]} != "${array[@]}"前面是整个数组的字符串,后面时整个数组

条件语句if or elif 后面要跟上 then 如:

标签:bin,文件,shell,read,基础,空格,array
From: https://www.cnblogs.com/tuzichun/p/17079103.html

相关文章