一.比较
- 算术比较, 比如一个变量是否为0, [ $var -eq 0 ]。
- 文件属性测试,比如一个文件是否存在,[ -e $var ], 是否是目录,[ -d $var ]。
- 字符串比较, 比如两个字符串是否相同, [[ $var1 = $var2 ]]。
括号可以使用 test 命令来代替, 查看更多test示例
if [ $var -eq 0 ]; then
echo "True";
fi
等价于
if test $var -eq 0; then
echo "True";
fi
二.数组
- 定义数组语法: **数组名=(值1 值2 ... 值n)**#示例:
array_name=(value0 value1 value2 value3)
#或
array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen
- 读取数组语法: ${数组名[下标]}
echo ${array_name[n]}
#读取数组全部内容
echo ${array_name[@]}
- 获取数组的长度
# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}
三.多行注释
:<<EOF
注释内容...
注释内容...
注释内容...
EOF
#或者
:<<!
注释内容...
注释内容...
注释内容...
!
四.字符串
- 获取字符串长度
string="abcd"
echo ${#string} #输出 4
- 字符串截取
string="runoob is a great site"
echo ${string:1:4} # 输出 unoo
五.echo命令
- 显示换行
echo -e "OK! \n" # -e 开启转义
echo "It is a test"
输出结果
OK!
It is a test
- 显示不换行
echo -e "OK! \c" # -e 开启转义 \c 不换行
echo "It is a test"
输出结果
OK! It is a test
六.函数
[ function ] funname [()]
{
action;
[return int;]
}
1.可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
2.参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255)
七.其他命令及示例
使用shell脚本监控系统的各项参数 参考