shell set 命令用法不解

sh/bash/dash/ksh/zsh等Shell脚本
回复
zhi5631
帖子: 19
注册时间: 2010-08-08 15:41

shell set 命令用法不解

#1

帖子 zhi5631 » 2011-11-13 14:47

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$ 
这也就是说相当于脚步的位置参数, 对此用法有些不解,有人可以帮我解释下吗? 谢谢!
头像
redhatlinux10
帖子: 773
注册时间: 2008-01-22 23:24
来自: 三亚
联系:

Re: shell set 命令用法不解

#2

帖子 redhatlinux10 » 2011-11-13 15:42

本来就可以使用set来设置位置参数。

代码: 全选

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

代码: 全选

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

代码: 全选

man set
zhi5631
帖子: 19
注册时间: 2010-08-08 15:41

Re: shell set 命令用法不解

#3

帖子 zhi5631 » 2011-11-13 16:02

thanks very much. 我知道两者的效果是一样的,只是不确定set可设置位置参数,明白了,thanks。
回复