首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

变量IFS两种赋值的区别,该怎么解决

2012-03-26 
变量IFS两种赋值的区别用命令setgrep IFS 命令后显示如下:IFS$ \t\n那么上边的变量与IFS \t\n的区别

变量IFS两种赋值的区别
用命令set ¦ grep IFS 命令后显示如下: 
IFS=$' \t\n'  
那么上边的变量 
与  
IFS=' \t\n'  
的区别是什么? 谢谢!

[解决办法]
用命令set ¦ grep IFS 命令后显示如下:
IFS=$' \t\n'
那么上边的变量

IFS=' \t\n'
的区别是什么? 谢谢
[解决办法]
一个探究参数处理差别的函数


[ian@pinguino ~]$ type testfunc2
testfunc2 is a function
testfunc2 ()
{
echo "$# parameters";
echo Using '$*';
for p in $*;
do
echo "[$p]";
done;
echo Using '"$*"';
for p in "$*";
do
echo "[$p]";
done;
echo Using '$@';
for p in $@;
do
echo "[$p]";
done;
echo Using '"$@"';
for p in "$@";
do
echo "[$p]";
done
}
使用 testfunc2 打印参数信息


[ian@pinguino ~]$ IFS="|${IFS}" testfunc2 abc "a bc" "1 2
> 3"
3 parameters
Using $*
[abc]
[a]
[bc]
[1]
[2]
[3]
Using "$*"
[abc|a bc|1 2
3]
Using $@
[abc]
[a]
[bc]
[1]
[2]
[3]
Using "$@"
[abc]
[a bc]
[1 2
3]


仔细研究二者的差别,尤其要注意加引号的形式和包含空白(如空格字符和换行符)的参数。在一个 [] 字符对中,注意:“$*” 扩展实际上是一个词。

[解决办法]
学习
[解决办法]
在chinaunix也看到你的帖子。还是到这里来吧,呵呵。

其实我也不是很确定,不过可以给你一些线索。你看看下面三个命令之间的区别,我觉得也许有一定原因,不过暂时还没想到很参数分隔有关系。
echo '[ \n\t]'
echo $'[ \n\t]'
echo -e '[ \n\t]

热点排行