位置变量
Shell解释执行用户的命令时,将命令行的第一个字作为命令名,而其它字作为参数。由出现在命令行上的位置确定的参数称为位置参数。
例如:
[root@linus ~]# ls -l #-l就是位置参数
总用量 8
-rw-------. 1 root root 1761 12月 10 19:56 anaconda-ks.cfg
-rw-r--r--. 1 root root 1809 12月 10 20:05 initial-setup-ks.cfg
使用$N 来表示
$0 获取当前执行shell脚本或程序的名称,包括脚本路径,命令本身。注意:$0属于预定义变量而不是位置变量。
$n 获取当前脚本的第n个参数 n=1,2…n 当n大于9时 用${10}表示。
简单案例
例1:
#!/bin/bash
echo "脚本名称:$0"
echo "第一个参数:$1"
echo "第二个参数:$2"
echo "第三个参数:$3"
执行结果:
[root@linus ~]# sh test.sh 1 2 3
脚本名称:test.sh
第一个参数:1
第二个参数:2
第三个参数:3
$0是程序脚本名称,其他参数将依次赋值给位置变量。
例2:
其中调用的位置变量,不会因为在脚本中更改顺序而改变。也就是说,不管是在脚本里的哪个位置,只要调用相应的位置变量,值不会改变。
#!/bin/bash
echo "第一个参数:$1"
echo "第三个参数:$3"
echo "脚本名称:$0"
执行结果:
[root@linus ~]# sh test.sh 1 2 3
第一个参数:1
第三个参数:3
脚本名称:test.sh
例3:
若没有对应的位置变量,将显示空值
#!/bin/bash
echo "脚本名称:$0"
echo "第一个参数:$1"
echo "第二个参数:$2"
echo "第四个参数:$4"
执行结果:
[root@linus ~]# sh test2.sh 1 2 3
脚本名称:test2.sh
第一个参数:1
第二个参数:2
第四个参数: