分页: 1 / 1

shell set 命令用法不解

发表于 : 2011-11-13 14:47
zhi5631
Hi:
大家好,我知道set一般是设置shell的环境。eg: set -e, set +e

我今天看到别人写的脚本,里面有类似这样的句子:wuya@wuya:~/test$ set $(echo 1 2 3 )

然后地下是这么用的:

代码: 全选

wuya@wuya:~/test$ echo $1
1
wuya@wuya:~/test$ echo $2
2
wuya@wuya:~/test$ echo $3
3
wuya@wuya:~/test$ echo $4

wuya@wuya:~/test$ echo $*
1 2 3
wuya@wuya:~/test$ echo $@
1 2 3
wuya@wuya:~/test$ 
这也就是说相当于脚步的位置参数, 对此用法有些不解,有人可以帮我解释下吗? 谢谢!

Re: shell set 命令用法不解

发表于 : 2011-11-13 15:42
redhatlinux10
本来就可以使用set来设置位置参数。

代码: 全选

set $(echo 1 2 3 )
在效果上和

代码: 全选

set 1 2 3
是一样的,就是设置$1为1,$2为2,$3为3.
详情请参考

代码: 全选

man set

Re: shell set 命令用法不解

发表于 : 2011-11-13 16:02
zhi5631
thanks very much. 我知道两者的效果是一样的,只是不确定set可设置位置参数,明白了,thanks。