gpt4 book ai didi

shell - 使用标准输出流水线中的参数两次

转载 作者:行者123 更新时间:2023-12-04 17:08:01 25 4
gpt4 key购买 nike

我有一个命令行工具,它接收两个参数:

TOOL  arg1 -o arg2

我想用为 arg1 和 arg2 提供的相同参数调用它,并且为了让我更容易,我想我会这样做:
each <arg1_value> | TOOL $1 -o $1

但这不起作用, $1 不会被替换,而是被添加到命令行的末尾。

一个明确的例子,执行:
cp fileA fileA
返回错误 fileA 和 fileA 相同(未复制)
表演时:
echo fileA | cp $1 $1
返回以下错误:
用法:cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory


有任何想法吗?

最佳答案

如果您想使用 xargs,[-I] 选项可能会有所帮助:

-I replace-str
Replace occurrences of replace-str in the initial-arguments with names read from standard input. Also, unquoted blanks do not terminate input items; instead the separa‐
tor is the newline character. Implies -x and -L 1.

这是一个简单的例子:
mkdir test && cd test && touch tmp
ls | xargs -I '{}' cp '{}' '{}'

返回错误 cp: tmp 和 tmp 是同一个文件

关于shell - 使用标准输出流水线中的参数两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37980097/

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