位置参数
1 | [me@linuxbox ~]$ posit-param a b c d |
注意: 实际上通过参数展开方式你可以访问的参数个数多于9个。
只要指定一个大于9的数字,用花括号把该数字括起来就可以。 例如 ${10}, ${55}, ${211}
确定参数个数
另外 shell 还提供了一个名为 $#
,可以得到命令行参数个数的变量:
shift
执行一次 shift 命令, 就会导致所有的位置参数 “向下移动一个位置”。
每次 shift 命令执行的时候,变量 $2
的值会移动到变量 $1
中,变量 $3
的值会移动到变量 $2
中,依次类推。 变量 $#
的值也会相应的减1。
basename
basename 命令清除 一个路径名的开头部分,只留下一个文件的基本名称。
Shell 函数中使用位置参数
正如位置参数被用来给 shell 脚本传递参数一样,它们也能够被用来给 shell 函数传递参数。
位置参数 $0
总是包含命令行中第一项的完整路径名
$* $@
- $* 展开成一个从1开始的位置参数列表。当它被用双引号引起来的时候,展开成一个由双引号引起来 的字符串,包含了所有的位置参数,每个位置参数由 shell 变量 IFS 的第一个字符(默认为一个空格)分隔开。
- $@ 展开成一个从1开始的位置参数列表。当它被用双引号引起来的时候, 它把每一个位置参数展开成一个由双引号引起来的分开的字符串。