众志成城
介绍
流动的数据是程序的肉体。
位置参数
执行shell程序时,shell会自动将第一个参数保存在特殊的shell变量1中,并依次将后面参数保存到后面的变量上。这些特殊变量由于基于命令行所在的位置而命名为“位置参数”。
位置参数是在shell完成正常的命令行处理之后(I/O重定向,变量替换,文件名替换)被赋值的。
注意:当提供给程序的参数多于9个时,没法直接访问到第10个及以后的参数的,必须使用格式${n}
;否则如$10
会被解析为第一个变量后加上字符0
。
之外,命令shift
可以左移位置参数。
特殊变量
除了位置参数为,特殊shell变量$#
包含了命令行中输入的参数个数;变量$*
引用的是传给程序的所有参数。
示例
$ cat tshift
echo $# $*
shift
echo $# $*
shift
echo $# $*
shift
echo $# $*
shift
echo $# $*
shift
$ chmod +x ./tshift
$ ./tshift a b c d e
5 a b c d e
4 b c d e
3 c d e
2 d e
1 e
参考资料
UNIX/Linux/OS X中的Shell编程@ISBN: 9787115470416:https://book.douban.com/subject/30410589/