Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数

特殊变量列表

变量 含义
n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是2。
* 传递给脚本或函数的所有参数。
* 稍有不同,下面将会讲到。
$? 上个命令的退出状态,或函数的返回值。一般情况下,大部分命令执行成功会返回 0,失败返回 1。
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

@ 的区别
@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"2" … "*" 会将所有的参数作为一个整体,以"2 … @" 会将各个参数分开,以"2" … "$n" 的形式输出所有参数。

下面的例子可以清楚的看到 @ 的区别:

!/bin/bash

echo "$=" "=" "@=" @"=" ""
for var in var"
done
echo "print each param from $@"
for var in var"
done
echo "print each param from "$
""
for var in "var"
done
echo "print each param from "$@""
for var in "var"
done

执行 ./test.sh "a" "b" "c" "d",看到下面的结果:
*"= a b c d
@"= a b c d
print each param from @
a
b
c
d
print each param from "@"
a
b
c
d
说明:双引号包含时,"@"还是遍历每一个参数

你可能感兴趣的:(Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数)