$n (功能描述:n 为数字,$0 代表该脚本名称,$1-$9 代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})
$ touch parameter.sh
$ vim parameter.sh
#!/bin/bash
echo '==========$n=========='
echo $0 echo $1 echo $2
$ chmod 777 parameter.sh
$ ./parameter.sh cls xz
==========$n==========
./parameter.sh
cls xz
$# (功能描述:获取所有输入参数个数,常用于循环,判断参数的个数是否正确以及加强脚本的健壮性)。
$ vim parameter.sh
#!/bin/bash
echo '==========$n=========='
echo $0 echo $1 echo $2
echo '==========$#==========' echo $#
$ chmod 777 parameter.sh
$ ./parameter.sh cls xz
==========$n==========
./parameter.sh
cls
xz
==========$#==========
2
$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
$@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
$ vim parameter.sh
#!/bin/bash
echo '==========$n=========='
echo $0 echo $1 echo $2
echo '==========$#==========' echo $#
echo '==========$*==========' echo $*
echo '==========$@=========='
echo $@
$ ./parameter.sh a b c d e f g
==========$n==========
./parameter.sh
a b
==========$#==========
7
==========$*==========
a b c d e f g
==========$@==========
a b c d e f g
$?(功能描述:最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一个命令正确执行;如果这个变量的值为非 0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。)
$ ./helloworld.sh hello world
$ echo $?
#运行结果:
0
“$((运算式))” 或 “$[运算式]”
两个小括号==一个中括号
代码如下:
S=$[(2+3)*4]
echo $S
语法 | 解释 |
---|---|
-eq | 等于 |
-ne | 不等于 |
-lt | 小于 |
-le | 小于 等于 |
-gt | 大于 |
-ge | 大于 等于 |
注:如果是字符串之间的比较,用等号“=”判断相等;用“!=”判断不等。 |
语法 | 解释 |
---|---|
-r | 有读的权限 |
-w | 有写的权限 |
-x | 有执行的权限 |
语法 | 解释 |
---|---|
-e | 文件存在 |
-f | 文件存在并且是一个常规的文件 |
-d | 文件存在并且是一个目录 |