![](/img/trans.png)
[英]Problems with space character in Bash cut command when using a different delimiter
[英]Bash strips “N” character when using newline-delimiter
我正在使用Windows Linux子系统(Ubuntu)。 当我尝试设置换行符时,我丢失了'n'个字符。 我的简化脚本;
#!/bin/sh
echo $HOME #gives /home/hennio
IFS=$'\n'
echo $HOME #gives /home/he io
IFS=$'\\n\\b'
不能解决问题。 我用$(with sh)检查了我的shebang,它是正确的(尽管使用zsh)。
在互联网上搜索没有得到任何结果。 有人可以告诉我发生了什么吗? 它让我发疯..
为了保持兼容性,以/bin/sh
调用的shell通常会尝试模仿POSIX shell或Bourne shell的某些变体。 POSIX和Bourne都不支持$'...'
。 有两种可能的解决方案:
方法1:使用支持$'...'
的shell(例如bash
的shebang。
要么,
方法2:使用POSIX方法向IFS
分配换行符:
IFS='
'
(帽子提示: 戈登·戴维森 )
来自man zsh
:
Zsh
分别作为sh
或ksh
调用时尝试模拟sh
或ksh
从man bash
:
如果使用名称
sh
调用bash
,则它会尝试尽可能接近于sh的历史版本的启动行为,同时也要符合POSIX标准。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.