1.shell参数
$ chmod+x test.sh 为脚本设置可执行权限
$n 拿到参数
参数个数为:$#
传递的参数作为一个字符串显示:$*(假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。)
2.shell数组
定义my_array=(A B"C"D)
读取${array_name[index]}
数组的元素为: ${my_array[*]}
数组的元素为: ${my_array[@]}
数组元素个数为: ${#my_array[*]}
数组元素个数为: ${#my_array[@]}
3.表达式
`expr 2 + 2`
两点注意:表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。
乘号(*)前边必须加反斜杠(\)才能实现乘法运算;
条件表达式要放在方括号之间,并且要有空格,例如:[$a==$b]是错误的,必须写成[ $a == $b ]。
在 MAC 中 shell 的 expr 语法是:$((表达式)),此处表达式中的 "*" 不需要转义符号 "\" 。
-eq 等于 -nq 不等于 -gt 大于 -lt 小于 -ge 大于等于 -le 小于等于
! 非 -o 或 -a 与
&& and || or
字符串运算符:= 相等 != 不等 -z 长度为0 -n 不为0 str 为空
文件测试运算符
4.echo命令
5.printf format-string [arguments...]
%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
%-4.2f 指格式化为小数,其中.2指保留2位小数。
6.test 命令
7.流程控制
条件:
if condition1
then command1
elif condition2
then command2
else commandN
fi
循环:
for var in items
do commands
done
while循环:
while condition
do command
done
until循环
until condition
do command
done
case 值 in
模式1)
command1
;;
模式2)
command1
;;
esac
break命令 跳出整个循环
continue 跳出当前循环
8.函数
9./dev/null2>&1不输出
10.文件包含
. filename
source filename