如何使用另一个命令通过管道传递的参数执行相同的命令?
作为从源中提取文件名的结果,我得到:
$some_command
文件名1
文件名2
文件名3
...
文件名N
我想用这些文件名创建文件touch。如何遍历touch这些名称?
the*_*ive 11
您可以使用 xargs 和 -n1 为每个管道参数运行一次命令
$some_command | xargs -n 1 touch
Run Code Online (Sandbox Code Playgroud)
然而,在接受多个参数的触摸的情况下
touch `$some_command`
Run Code Online (Sandbox Code Playgroud)
可能会为你工作。
我只使用 for ... do ... done 用于非常简单的情况。
对于更复杂/危险的场景:
command | sed 's/^/touch /'
Run Code Online (Sandbox Code Playgroud)
这只是打印预期的命令。查看结果,然后执行相同的管道操作sh -x(该-x标志用于调试):
command | sed 's/^/touch /' | sh -x
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2446 次 |
| 最近记录: |