gpt4 book ai didi

bash - xargs 可以为每个参数执行一个子 shell 命令吗?

转载 作者:行者123 更新时间:2023-11-29 08:48:17 24 4
gpt4 key购买 nike

我有一个试图为文件生成 UUID 的命令:

find -printf "%P\n"|sort|xargs -L 1 echo $(uuid)

但在结果中,xargs 只执行一次 $(uuid) 子 shell:

8aa9e7cc-d3b2-11e4-83a6-1ff1acc22a7e file1
8aa9e7cc-d3b2-11e4-83a6-1ff1acc22a7e file2
8aa9e7cc-d3b2-11e4-83a6-1ff1acc22a7e file3

是否有单行代码(即不是函数)让 xargs 在每个输入上执行子 shell 命令?

最佳答案

这是因为 $(uuid) 在当前 shell 中被扩展了。您可以显式调用 shell:

find -printf "%P\n"| sort | xargs -I '{}' bash -c 'echo $(uuid) {}'

顺便说一句,我会使用以下命令:

find -exec bash -c 'echo "$(uuid) ${1#./}"' -- '{}' \;

没有xargs

关于bash - xargs 可以为每个参数执行一个子 shell 命令吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29278466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com