我在一个 shell 脚本文件 foo.sh 中有这些行:
ps ax | grep -E "bar" | grep -v "grep" | awk '{print $1}' | xargs kill -9 $1
当我使用这样的参数执行 shell 脚本时:
sh foo.sh arg_one
xargs 现在无法工作。它从 shell 脚本中获取 $1 而不是 awk 的输出。
我知道我可以将 awk 的输出存储到一个文件中,然后在 xargs 中使用它。
但是,有没有更好的解决方案?
==已编辑==
感谢@peterph 的回答。但是,有什么方法可以在 xargs 中使用 $1 吗?
== 已编辑 2 ==
谢谢@Brian Campbell
尽管天气不好,示例中应该有一个无用的 $1,如果给出“shell 脚本文件”的参数,那么 xargs 中的 $1 将无法在我的计算机中按我的意愿工作(我认为也在你的计算机中)。为什么?而且,如何避免呢?