毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> linux >> 正文

echo $IFS 和echo "$IFS" 什么区别

更新时间:2016-8-7:  来源:毕业论文


av[0]: <.></><a><r><g>
av[1]:
av[2]:
echo -en '\n',生成'\n'
Plain Text code
?
1
2
3
 
# echo -ne '\n' | od -b
0000000 012
0000001


2. IFS=$(echo -en '\n'),注意赋值不发生word split,但是由于cmd substitute会去掉最后一个\n,所以IFS为空。
Plain Text code
?
1
 
 Bash performs the expansion by executing command and replacing the command substitution with the standard output of the command, ~~~~with any trailing newlines  deleted~~~~~.

# IFS=`echo -ne "\n"`
# ./arg "$IFS"
av[0]: <.></><a><r><g>
av[1]:


3. 所以echo -n "$IFS"相当于echo -n ""
 
# echo -n "$IFS" | od -b
0000000


4. echo -en '\n\b',生成'\n\b'
 
# echo -en "\n\b" | od -b
0000000 012 010
0000002


5. IFS=`echo -en "\n\b"`,IFS还是'\n\b'
 
# IFS=`echo -en "\n\b"`
# ./arg "$IFS"
av[0]: <.></><a><r><g>
av[1]: <
>>
# 注意由于\b的作用有一个<显示不出来
# echo -n "$IFS" | od -b
0000000 012 010
0000002


6. 把\n和\b的位置换一下,由于cmd替换删除结尾的\n,所以就只剩下\b

 
# IFS=`echo -en "\b\n"`
# echo -n "$IFS" | od -b
0000000 010
0000001

7. 把echo -en换为echo -e,也就是说echo的结果有\n,不影响上述结论。
echo -ne '\n' => echo -e '\n' => \n\n => 去掉结尾\n => NULL
echo -ne '\n\b' => echo -e '\n\b' => \n\b\n => 去掉结尾\n => \n\b

上一页  [1] [2] 

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。