此篇介绍一下Shell命令相关的内容。
$0、$1、#、*、$?
首先介绍一下 $0、$1、#、*、$? 的含义。
比如执行以下命令:
/bin/test.sh a b c
命令 | 含义 | 备注 |
---|---|---|
$0 | 表示文件路径和文件名 | /bin/test.sh |
$1、$2 | 表示第几个参数 | 如a、b,但如第10个要用${10}而非$10,{1}0 |
$# | 表示传入脚本的参数个数 | 此处为3,统计不包括$0 |
$@ | 表示所有参数的列表 | 此处"a"、"b"、"c",不包括$0 |
$* | 表示所有的参数 | 其值和 $@ 相同,但区别在于 $* 把所有参数合并成一个字符串,而 $@ 会得到一个字符串参数数组 |
$? | 表示执行脚本命令后的返回值 | 命令执行成功时默认返回0 |
示例:
#!/bin/sh
for x in "$@"; do
echo $x
done
for x in "$*"; do
echo $x
done
执行 /bin/test.sh a b c 后输出:
a
b
c
a b c
& 和 wait
& 当要执行的命令以 & 结尾时,这个命令会在后台子 shell 执行
wait 当有多个耗时操作可以并发执行,且这些操作都执行完成后,再进行下一步操作,就可以使用 wait 命令来等待这些操作执行完成
例如:
command1 &
command2 &
wait