一、exit命令(shell脚本出错不停止,除非显示exit)
格式:exit n
退出,设置退出码为n。(Cause the shell to exit with a status of n.)
格式:exit
退出,退出码不变,即为最后一个命令的退出码。(If n is omitted, the exit status is that of the last command executed. )
格式:$?
上一个命令的退出码。
退出码(exit status,或exit code)的约定:
0表示成功(Zero - Success)
非0表示失败(Non-Zero - Failure)
2表示用法不当(Incorrect Usage)
127表示命令没有找到(Command Not Found)
126表示不是可执行的(Not an executable)
>=128 信号产生
二、EOF用法
将<
python <
dir()
print 'hello world'
EOF
特别注意:EOF时单引号无特殊意义,像双引号作用一样,也可以进行变量替换。
query_config() {
mysql -uwebadmin -p <
use 3scard_gw_db
select * from system_config where id='$1' limit 1\G
EOF
}
query_config 2
配合空命令":"实现多行注释:
:<
comment line 1;
comment lin2 2;
EOF
三、数组用法(下标可以不连续)
定义:a=(1 2 3 4 5) // 一对括号表示是数组,数组元素用“空格”符号分割开。
取元素:echo ${a[0]} // 输出1
取所有元素:echo ${a[@]} // 输出1 2 3 4 5 @和*等价
取所有元素:echo ${a[*]} // 输出1 2 3 4 5 @和*等价
取长度:echo ${#a[@]} // 输出5
设置元素:
a[10#1]=100 //10#表示10进制下标。
echo ${a[*]} // 输出1 100 3 4 5
添加元素:
a[5]=100
echo ${a[*]} // 输出1 100 3 4 5 100
清除整个数组:
a=(1 2 3 4 5)
unset a
echo ${a[*]} // 输出为空
清除单个元素:
a=(1 2 3 4 5)
unset a[1]
echo ${a[*]} // 输出1 3 4 5