shell杂记-shell特别点
1、shell变量
①变量名和等号之间不能有空格:your_name="runoob.com"
②只读变量定义:readonly you_name,在定义后无法被修改
③删除变量:unset your_name
④获取字符串长度:echo ${#your_name}
⑤提取子字符串:echo ${your_name:1:4}
2、shell数组
①定义数组用空格隔开或者换行。仅支持一维数组:a=(1 2 3 4);单个值赋值:a[0]=xxx
②获取数组中所有值:${a[@]}
3、shell运算符
①expr表达式计算工具,使用反引号:a=`expr 2 + 2 `;注意:反引号是键盘1的左边键;运算符前后数字要有空格
②运算符特别的2点:*号前面必须加\:”val=`expr $a \* $b`;判断是否相等的==、!=的 必须用[]括起来:[ $a == $b ]
4、shell的echo
①显示命令输出:echo `date`
5、shell的流程控制
①case的用法示例:
case $aNum in
1|2|3|4|5) echo "你输入的数字为 $aNum!"
;;
*) echo "你输入的数字不是 1 到 5 之间的! 游戏结束"
break
;;
esac
6、shell的函数调用
①调用函数传参时,不需要在函数中定义参数。直接调用函数:fun 1 2
②传参时,函数内部使用参数,可直接使用$1、$2..表示调用函数时传入的第1位、第2位的值。大于10的值,需要用${10}大括号的方式表示
7、shell的输入/输出重定向
①标准错误文件重定向:command 2 > file
②错误和输出都重定向:commadn > file 2>&1
③输出和输出都重定向:command < file1 > file2 输入重定向到file1,输出重定向到file2
④丢弃结果:command > /dev/null
8、shell文件包含
①test2中需要引用执行test1,2种表达方式:source test1.sh 或者 . ./test1.sh。使用【.空格】或者【source空格】的方式引用