Tran Triet Asked: 2019-03-15 03:53:10 +0800 CST2019-03-15 03:53:10 +0800 CST 2019-03-15 03:53:10 +0800 CST 使用 xargs 构建和运行命令列表 772 如何使用xargs来构建和运行命令列表,例如: #1 cmd1 <arg1> && cmd2 <arg1> && cmd3 <arg1> #2 cmd1 <arg1> ; cmd2 <arg1> xargs 1 个回答 Voted Best Answer Kusalananda 2019-03-15T03:57:44+08:002019-03-15T03:57:44+08:00 通过为输入的每一行启动一个子shell xargs: xargs -I {} sh -c 'cmd1 "$1" && cmd2 "$1" && cmd3 "$1"' sh {} xargs -I {} sh -c 'cmd1 "$1"; cmd2 "$1"' sh {} 这运行sh -c将给定的字符串作为 shell 脚本执行。sh -c脚本本身之后的参数被提供给脚本$0并$1在脚本内部。的值$0通常应该是 shell 的名称,这就是我们sh作为这个参数传递的原因(它将在错误消息中使用)。 或者, xargs sh -c ' for arg do cmd1 "$arg" && cmd2 "$arg" && cmd3 "$arg" done' sh xargs sh -c ' for arg do cmd1 "$arg" cmd2 "$arg" done' sh 这些变体将采用尽可能多的参数,然后在sh -c脚本内的循环中将代码应用于这些参数。 与使用时一样xargs,必须小心,以便sh -c正确分隔提供给给定实用程序(此处)的参数。
通过为输入的每一行启动一个子shell
xargs
:这运行
sh -c
将给定的字符串作为 shell 脚本执行。sh -c
脚本本身之后的参数被提供给脚本$0
并$1
在脚本内部。的值$0
通常应该是 shell 的名称,这就是我们sh
作为这个参数传递的原因(它将在错误消息中使用)。或者,
这些变体将采用尽可能多的参数,然后在
sh -c
脚本内的循环中将代码应用于这些参数。与使用时一样
xargs
,必须小心,以便sh -c
正确分隔提供给给定实用程序(此处)的参数。