about bash(1)
1. 显示与位置参数(Positional Parameters )
可以使用echo或者printf在终端中显示信息,例如:
echo "hello $1" printf "the first argument is %s\n" $1
运行将显示:
注意,printf的格式化字符串和站位参数之间使用的是空格,而不是逗号或者其他符号,如果使用逗号,将会被认为是一个新的字符串。
bash最多支持9个位置参数,如果使用$10,将会被理解为$1后面跟一个0,超过9可以使用如下方式:%{12},表示第12个位置参数。
那有没有$0呢,如果有,是什么意思呢?
还真有。$0就像C语言的argv[0]表示程序名称一样,$0表示的就是脚本的名称,如果直接在shell中使用$0而不执行脚本,则是表示bash。
其他的特殊位置参数:
$*或者$@:所有参数的组合;
$#:参数的个数
$?:最后一个命令执行后的退出码(Exit Code)
$$:包含当前进程的PID
2. 变量
变量通过如下方式创建:
name=VALUE
特别注意,变量的名称和值之间千万不能有空格,否则命令不能正常工作,测试如下:
good=hello bad = oops echo $good echo $bad
运行效果:
shell会认为你是在执行bad这个命令,然后没找到,于是报错。