(8)、shell中case语法
#!/bin/bash
echo "please input:"
read num
case $num in
1)
echo "one"
;;
2)
echo "two"
;;
*)
echo "other"
esac
直到遇见双分号;;或者esac才结束。*)相当于多个 if 分支语句中最后的 else 部分。
(9)、while语法,直到条件不为真
while condition
do
done
(10)、
#!/bin/bash是shell脚本的第一行,称为释伴(shebang)行。这里#符号叫做hash,而! 叫做bang。
在英国和澳大利亚,还会将#称为hash,或者hash key、hash mark。
Shebang 的名字来自于 SHArp 和 bang,或 haSH bang 的缩写,也有看法认为,shebang 名字中的 sh 来自于默认shell Bourne shell 的名称。
(11)、for循环语法
(12)、调试shell语法
sh -x
sh -nv
-n,读一遍脚本中的命令但不执行,用于检查脚本中的语法错误。
-v,一边执行脚本,一边将执行过的脚本命令打印到标准输出。
-x,提供跟踪执行信息,将执行的每一条命令和结果依次打印出来。
(13)、shell中字符串比较
test 是 Shell 内置命令,用来检测某个条件是否成立。test 通常和 if 语句一起使用,并且大部分 if 语句都依赖 test。
test 命令有很多选项,可以进行数值、字符串和文件三个方面的检测。
Shell test 命令的用法为:
test expression
当 test 判断 expression 成立时,退出状态为 0,否则为非 0 值。
test 命令也可以简写为[],它的用法为:
[ expression ]
注意[]和expression之间的空格,这两个空格是必须的,否则会导致语法错误。[]的写法更加简洁,比 test 使用频率高。
test 命令比较奇葩,>、<、== 只能用来比较字符串,不能用来比较数字,比较数字需要使用 -eq、-gt 等选项;不管是比较字符串还是数字,test 都不支持 >= 和 <=。有经验的程序员需要慢慢习惯 test 命令的这些奇葩用法。
(14)、变量
$0 脚本名称
$1 第一个参数
$# 参数数量
$* 所有命令行参数
(15)、test测试文件
Test 用法
-d 文件名 如果文件存在并且是目录,返回true
-e 文件名 如果文件存在,返回true
-f 文件名 如果文件存在并且是普通文件,返回true
-r 文件名 如果文件存在并可读,返回true
-s 文件名 如果文件存在并且不为空,返回true
-w 文件名 如果文件存在并可写,返回true
-x 文件名 如果文件存在并可执行,返回true