当前位置: 技术问答>linux和unix
问个简单的问题,关于环境变量的
来源: 互联网 发布时间:2016-02-17
本文导语: 今天看讲bash的书中,讲到"$*"和"$@"时,介绍了一个例子。 IFS=, echo "$*" 就会得到逗号分隔的参数。 我是这么做的: 在命令行下执行export IFS=, 然后在一个脚本里写好echo "$*" 在命令行下执行脚本后并未得到逗号分隔...
今天看讲bash的书中,讲到"$*"和"$@"时,介绍了一个例子。
IFS=,
echo "$*"
就会得到逗号分隔的参数。
我是这么做的:
在命令行下执行export IFS=,
然后在一个脚本里写好echo "$*"
在命令行下执行脚本后并未得到逗号分隔的参数,还是跟以前一样,必须在脚本里写上IFS=,才能得到逗号分隔的参数。
脚本运行应该是启动一个subshell,export的变量在subshell中也应该是可见的,为什么还必须在脚本里写上IFS=,才能得到逗号分隔的参数呢?
IFS=,
echo "$*"
就会得到逗号分隔的参数。
我是这么做的:
在命令行下执行export IFS=,
然后在一个脚本里写好echo "$*"
在命令行下执行脚本后并未得到逗号分隔的参数,还是跟以前一样,必须在脚本里写上IFS=,才能得到逗号分隔的参数。
脚本运行应该是启动一个subshell,export的变量在subshell中也应该是可见的,为什么还必须在脚本里写上IFS=,才能得到逗号分隔的参数呢?
|
IFS不是环境变量,而是特殊变量,所以export是不起作用的,只能在脚本里设置。