bash - perl 和 bash 外部命令区别

标签 bash perl

我的 name.txt 包含:

Tom
Daniel
James

在 Perl 中,

my $names = `cat names.txt`;
print $names;

给我:

Tom
Daniel
James

在 Bash 中,

names=`cat names.txt`
echo $names

给我:

Tom Daniel James

这是我的 od -c name.txt 的输出:

0000000    T  o  m  \n   D   a   n   i   e   l  \n   J   a   m   e   s
0000020

差异的原因是什么?

最佳答案

两个变量接收相同的值,但是您在 Bash 中检查值的方式有缺陷:使用 echo "$names" - 注意双引号 - 来查看真实值。

在 Bash 中不加引号使用 $names 使其值受制于 word-splitting ,这意味着值中以空格分隔的单词 - TomDanielJames - 作为单独的参数<传递/em> 到 echoecho 将这些值与输出中的空格连接起来。

关于bash - perl 和 bash 外部命令区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42730430/

相关文章:

linux - 如何编写脚本以使用我的凭据连接到 ssh 服务器?

linux - shell脚本获取列数据

perl - 标量在 &lt;script&gt; 处找到运算符预期的位置

arrays - 有条件地实例化一个新的Perl数组

python - grep 管道 python 等效项

linux - 如何将间隔添加到存储在变量中的日期/时间

perl - 如何使用 Perl 脚本从 Web URL 下载 .zip 文件?

perl - 如何在 Perl 中将 dd/mm/yyyy 转换为纪元时间?

perl - 使用 LWP::UserAgent 时不保存 Cookie

mysql - 如何在重定向期间运行 bash 命令 << EOF