示例
#!/bin/sh
if [ ${#@} -ne 0 ] && [ "${@#"--help"}" = "" ]; then
printf -- '...help...\n';
exit 0;
fi;
for i in "$@"; do
echo $i
done
for i in "$*"; do
echo $i
done
my_array=(1 2 3)
echo "数组的元素为: ${my_array[*]}"
echo "数组元素个数为: ${#my_array[*]}"
string="test"
echo ${string:0:2} # 输出 te
echo date +'%Y-%m-%d %H:%M:%S'
@ 或 * 可以获取数组中的所有元素,前面加个#可以取元素个数,${#my_array[*]}
批量给变量赋值
- for file in
ls /etc
- for file in $(ls /etc)
- 使用一个定义过的变量,只要在变量名前面加美元符号即可
- 变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,推荐给所有变量加上花括号
- unset variable_name 删除变量
Shell 传递参数
- $# 传递到脚本的参数个数
- $* 以一个单字符串显示所有向脚本传递的参数。
- $@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。
- $$ 脚本运行的当前进程ID号
- $! 后台运行的最后一个进程的ID号
- $- 显示Shell使用的当前选项,与set命令功能相同。
- $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
$* 与 $@ 区别,相同点:都是引用所有参数。不同点:只有在双引号中体现出来一个参数和多个参数
运算符
- 算数运算符
- 关系运算符:-eq -ne -gt -lt -ge -le
- 布尔运算符:! -o -a
- 逻辑运算符:&& ||
- 字符串运算符:-z -n
- 文件测试运算符:-s -x -d -f -e test 命令用于检查某个条件是否成立,可以用上面的几种运算符对数值、字符和文件三个方面的测试。