$n,n为数字,n为0-9,$0 代表脚本名称,$1-$9代表第一到第九个参数,9以上的参数需要使用大括号,如${10}表示第10个参数,比如如下,创建test.sh脚本文件,脚本如下,即打印脚本名本身,以及第一个、第二个和第三个参数
#!/bin/bash
echo $0
echo $1
echo $2
echo $3
用如下的方式执行,可以看出符合我们的预期
$ bash test.sh hahah 2 100
test.sh
hahah
2
100
$
$# 为获取所有输入参数的个数,如下,在test.sh脚本文件中写入如下内容,即打印参数的个数
#!/bin/bash
echo $#
使用如下命令执行,可以看出,当不输入参数时,打印的是0,当输入三个参数时则打印3
$ bash test.sh
0
$ bash test.sh 111 222 333
3
$
$ 作用是偶去命令行中所有的参数,$ 把所有的参数看成一个整体,如下test.sh代码即为打印$*的内容
#!/bin/bash
echo $*
执行结果如下,可以看出将执行时输入的三个参数都打印出来了
$ bash test.sh 111 222 333
111 222 333
$
$@ 作用是这个变量代表命令行中所有的参数,不过$@把每个参数区分对待,如下,在test.sh中编写代码,打印$@
#!/bin/bash
echo $@
执行结果如下,可以看出此时同样将三个参数都打印出来了
$ bash test.sh 111 222 333
111 222 333
$
$? 作用是获取最后一次执行的命令的返回状态,如果这个变量的值为0,表示上一个命令执行成功,如果这个变量不是0,则证明上个命令执行错误了
如下,当执行ls正确后,$?的值为0,而当输入一个错误的命令时,此时$?的值是127
$ ls
test.sh
$ echo $?
0
$ lsss
-bash: lsss: command not found
$ echo $?
127
$