linux shell脚本
一:基础1.管道与重定向
who | wc -l //计算当前用户登陆个数
cat > a.txt
who | wc -l
Ctrl+D
chmod u+x a.txt
./a.txt
执行结果与单独使用who | wc -l返回结果一致;
2.变量
1.变量设置
标准变量:查看标准变量 :set 设置标准变量:变量名=值 标准变量只存在于shell生命周期中,退出shell后消失
环境变量:可应用于所有父进程与子进程;查看环境变量:env或者:cat /etc/profile 设置环境变量:export变量名=值
变量设置规则:
1. 变量与变量内容以一个等号『=』连结,如下所示: 『myname=VBird』
2. 等号两边不能直接接空格符,如下所示为错误: 『myname = VBird』或『myname=VBird Tsai』
3. 变量名称只能是英文字母和数字,但是开头字符不能是数字,如下为错误: 『2myname=VBird』
4. 变量内容若有空格符可使用双引号『"』或单引号『'』将发量内容结连起来,但 双引号内的特殊字符如 $ 等,可以保有原本的特性,如下所示: 『var="lang is $LANG"』则『echo $var』可得『lang is en_US』
单引号内的特殊字符则仅为一般字符 (纯文本),如下所示: 『var='lang is $LANG'』则『echo $var』可得『lang is $LANG』
5. 可用跳脱字符『 \ 』将特殊符号(如 , $, \, 空格符, '等)发成一般字符;
6. 在一串指令中,还需要借由其他的指令提供的信息,可以使用反单引号『`指令`』戒 『$(指令)』。特别注意,那个 ` 是键盘上方的数字键 1 左边那个键,而不是单引号! 例如想要取得核心版本设定: 『version=$(uname -r)』再『echo $version』可得『2.6.18-128.el5』
7. 若该变量为扩增发量内容时,则可用 "$变量名称" 戒 ${变量} 累加内容,如下所示: 『PATH="$PATH":/home/bin』
8. 若该变量需要在其他子程序执行,则需要以 export 使发变量发成环境变量: 『export PATH』
9. 通常大写字符为系统默认变量,自行设定发量可以使用小写字符,方便判断;
10.取消发量的方法为使用 unset :『unset 变量名称』例如取消 myname 的设定: 『unset myname』
2.变量替换:将变量名替换为变量值通常使用Echo命令。有以下几种方式:
echo $变量名 或 echo ${变量名} 则打印变量值
echo${变量名:+value}表示如果设置了变量,则显示变量值,否则就显示为空
echo ${变量名:?value}通常用来判断变量是否存在,如果存在则显示其值,否则显示value所定义的错误信息;
echo ${变量名:-value}如果变量存在则显示其值,如果不存在则显示value值
echo ${变量名:=value}如果变量存在则显示其值,如果不存在设置变量并赋value的值并显示。
3.变量清除:使用unset 变量名注:只读变量无法清除,请谨慎使用readonly
页:
[1]