Linux;如何循环文件并在一行中输出文件名和命令的输出

标签 linux bash

我有一个命令,它从我的 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/

相关文章:

linux - 检查我是否使用 sudo 或 su

bash - 当标准输入来自 `cat` bash 时读取完整的标准输入直到 EOF

linux - 有人可以解释这是做什么的吗? (恶意)

c - C 中的父/子和管道,子-父通信

linux - 无法获取 rsync 排除选项以排除目录

Linux:如何防止文件支持的内存映射导致访问错误(SIGBUS 等)?

php - PHP cli 中没有颜色

python - 在一行中间拆分时间戳

linux - Bash 脚本命令在 '<' 之后不显示

python - dict可以在父进程和子进程之间共享吗?