分类:
2009-12-30 21:19:35
[root@home root]# cat myscript1 #!/bin/sh evalit(){ if [ $cnt = 1 ];then eval $@ return else let cnt=cnt-1 evalit $@ fi eval $@ } cnt=$1 echo $cnt | egrep "^[1-9][0-9]*$" >/dev/null if [ $? -eq 0 ]; then shift evalit $@ else echo 'ERROR!!! Check your input!' fi [root@home root]# ./myscript1 3 hostname home home home [root@home root]# ./myscript1 5 id |cut -f1 -d' ' uid=0(root) uid=0(root) uid=0(root) uid=0(root) uid=0(root)
[root@home root]# a="id | cut -f1 -d' '" [root@home root]# $a id:无效选项 -- f 请尝试执行‘id --help’来获取更多信息。 [root@home root]# eval $a uid=0(root)
eval $(dircolors -b /etc/dircolors)
[root@localhost root]# dircolors -b > tmp [root@localhost root]# cat tmp LS_COLORS='no=00:fi=00:di=01;34:ln=01; ...... export LS_COLORS #这里我没有指定配置文件,所以dircolors按预置数据库生成代码。 其输出被eval命令传递给shell执行。
[root@home root]# type -all pwd pwd is a shell builtin pwd is /bin/pwd [root@home root]# cat myscript2 #!/bin/sh pwd(){ echo "This is the current directory." command pwd } pwd [root@home root]# ./myscript2 This is the current directory. /root
[root@home root]# cd // [root@home //]# pwd // [root@home //]# type -all pwd pwd is a shell builtin pwd is /bin/pwd [root@home //]# /bin/pwd / [root@home //]# enable -n pwd [root@home //]# pwd /