【发布时间】:2017-01-23 00:03:46
【问题描述】:
可以更好地优化 xargs 参数枚举的这种用法吗? 目的是在实际命令的中间注入单个参数。
我愿意:
echo {1..3} | xargs -I{} sh -c 'for i in {};do echo line $i here;done'
或
echo {1..3} | for i in $(xargs -n1);do echo line $i here; done
我明白了:
line 1 here
line 2 here
line 3 here
这是我需要的,但我想知道是否可以避免循环和临时变量?
【问题讨论】:
-
for i in {1..3}; do echo line $i here; done? -
你的问题真的不太清楚,看起来真的是个XY问题。你有什么具体的用例?很可能有比您要求的更好的设计。
-
@gniourf_gniourf - 只是寻找一种简洁的参数使用方式,在后续命令中的任何位置通过管道传递
-
这并不是一个真正的特定用例。对我来说,这从一开始就看起来像是一个破碎的设计。而且,如果您没有在 shell 脚本中进行过试验,那么您会忽略很多警告(其中大部分来自您显然混合了代码和数据的事实)。从这里开始,一种可能的情况是,你会错误地学习糟糕的技术,这会比你预期的更快地咬你一口。
-
@gniourf_gniourf - 感谢您的宝贵意见。您介意向我介绍一个资源,在那里我可以学习在 shell 脚本上下文中适当分离代码和数据吗?