shift其实很简单的,就是左移参数列表,shift一次就将最左边的参数$1移出去了,然后
原来的$2现在就变成了$1。
shift后面还可以带上一个数字,指明要移出多少个参数(默认只移出一个),比如说
shift 3 就是移出3个参数,之后原来的$4就变成了现在的$1。
eval就是先将后面的参数执行一遍,将必要的置换都做了,再来执行命令。举个例子:
MYFILE="cat myfile"
echo $MYFILE # output: cat myfile
eval $MYFILE # output: contents of myfile
再举个详细点儿的例子:
#!/bin/bash
# evalit
echo " Total number of arguments passed: $#"
echo " The process ID: $$"
echo " Last argument: " $(eval echo \$$#)
运行脚本:
$ ./evalit alpha bravo charlie
output as follows:
Total number of arguments passed: 3
The process ID: 780
Last argument: charlie
阅读(3009) | 评论(0) | 转发(0) |