如下的代码:
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'被视作一个普通字符串.
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答799 阅读✓ 已解决
2 回答3.2k 阅读