bash 命令执行和脚本的格式差异

bash 命令执行和脚本的格式差异

我不明白为什么从脚本内部运行和直接从 bash 运行的相同命令在标准输出上的输出格式会有所不同。

当我ls -l从我的 bash 命令行运行时,我会在每个文件的末尾得到一个很好的换行符(产生一种表格数据),而如果通过 bash 运行相同的命令,$(ls -l)我会得到相同的数据但在一行上。

如果可能的话,请告诉我如何修改它(针对脚本)。

答案1

使用时, $(ls -l)换行符会被删除。它就是这样做的。

与 相同 ,`ls -l`与 首选 相同$(ls -l)

当你想用输出来做某事时,ls -l你需要以不同的方式去做。

ls -l |while read xx
do
   echo $xx
   ((ii = ii + 1))
done

(请注意,此(ls -l)打开一个新 shell,并且该 shell 中设置的变量在该 shell 之外不“可见”,因此ii在该循环之外不可见。)

相关内容