如下的代码:
shell
IFS=: IFS=$'\n' IFS=$'\n;='
给IFS赋值,为什么第2,3行要用到$
号,为什么第一行不用,$
号有什么作用吗?
如下的代码:
shell
IFS=: IFS=$'\n' IFS=$'\n;='
给IFS赋值,为什么第2,3行要用到$
号,为什么第一行不用,$
号有什么作用吗?
shell小白一只,简单test了一下:
#! /bin/bash
IFS=:
echo "$IFS"
IFS='\n'
echo "$IFS"
IFS=$'\n'
echo "$IFS"
IFS=$'\n;='
echo "$IFS"
Shell script的输出是:
:
\n
;=
具体$和不加$造成上述输出的原理我也不清楚,求其他大神解答~
加$符号将现执行'\n'转义,既将单引号''内的\n转为换行.而$则是获取这个转义后的结果,既为一个空行.
如果不使用$的话,eho "$IFS"将打印原始字符,因为"'\n'"中的'\n'被视作一个普通字符串.
1 回答922 阅读✓ 已解决
1 回答698 阅读✓ 已解决
3 回答698 阅读✓ 已解决
1 回答1.4k 阅读
1 回答831 阅读✓ 已解决
2 回答604 阅读✓ 已解决
1 回答673 阅读