我有一个命令,它从我的 name.txt 文件中获取文件名,然后循环这些文件并执行 script.sh。我的输出必须是文件名,后面是script.sh的输出,但是不起作用。我的命令有什么问题?
cat name.txt |while read name ; do cov='script.sh $name' ; echo $name $cov ; done
如果我单独运行的话,script.sh 工作正常。我认为问题出在 do cov='etc' 上,但我无法弄清楚出了什么问题。我也尝试过双引号“etc”,但也不起作用。
最佳答案
你应该使用反引号``引号或$()我喜欢的AND双引号
像这样cov="$(script.sh $name)"
$(command) 使 command 运行,并将其输出用作 cov= 的输入 和双引号确保命令的所有输出将用于cov=(并且不会被空格分隔并被误解)
关于Linux;如何循环文件并在一行中输出文件名和命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49977059/