我的 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 ,这意味着值中以空格分隔的单词 - Tom
、Daniel
和 James
- 作为单独的参数<传递/em> 到 echo
,echo
将这些值与输出中的空格连接起来。
关于bash - perl 和 bash 外部命令区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42730430/