当前位置: 技术问答>linux和unix
变量IFS两种赋值的区别
来源: 互联网 发布时间:2016-05-12
本文导语: 用命令set ¦ grep IFS 命令后显示如下: IFS=$' tn' 那么上边的变量 与 IFS=' tn' 的区别是什么? 谢谢! | 在chinaunix也看到你的帖子。还是到这里来吧,呵呵。 其实我也不是很确...
用命令set ¦ grep IFS 命令后显示如下:
IFS=$' tn'
那么上边的变量
与
IFS=' tn'
的区别是什么? 谢谢!
IFS=$' tn'
那么上边的变量
与
IFS=' tn'
的区别是什么? 谢谢!
|
在chinaunix也看到你的帖子。还是到这里来吧,呵呵。
其实我也不是很确定,不过可以给你一些线索。你看看下面三个命令之间的区别,我觉得也许有一定原因,不过暂时还没想到很参数分隔有关系。
echo '[ nt]'
echo $'[ nt]'
echo -e '[ nt]
其实我也不是很确定,不过可以给你一些线索。你看看下面三个命令之间的区别,我觉得也许有一定原因,不过暂时还没想到很参数分隔有关系。
echo '[ nt]'
echo $'[ nt]'
echo -e '[ nt]
|
一个探究参数处理差别的函数
[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]
仔细研究二者的差别,尤其要注意加引号的形式和包含空白(如空格字符和换行符)的参数。在一个 [] 字符对中,注意:“$*” 扩展实际上是一个词。
[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]
仔细研究二者的差别,尤其要注意加引号的形式和包含空白(如空格字符和换行符)的参数。在一个 [] 字符对中,注意:“$*” 扩展实际上是一个词。
|
用命令set ¦ grep IFS 命令后显示如下:
IFS=$' tn'
那么上边的变量
与
IFS=' tn'
的区别是什么? 谢谢
IFS=$' tn'
那么上边的变量
与
IFS=' tn'
的区别是什么? 谢谢
|
学习