Bash一个接受pidof输出并将其作为参数传递给strace的线性程序?

Bash一个接受pidof输出并将其作为参数传递给strace的线性程序?,bash,strace,Bash,Strace,我希望获得给定进程名称的PID,并使用strace将其附加到其输出。我可以这样手动执行此操作: $ pidof foobar 1234 2345 $ strace -p1234 -p2345 -s9999 -e write 太好了!但是我想从Ansible中自动执行这两个步骤,因此我需要在Bash中执行这两个步骤,即不需要手动将两个数字PID转换为两个-p参数 我已经尝试过很多事情,比如从PID创建一个数组,尝试用-p连接数组,但是一旦它变得如此复杂,你就需要创建一个函数,而我没有太多的范围

我希望获得给定进程名称的PID,并使用strace将其附加到其输出。我可以这样手动执行此操作:

$ pidof foobar
1234 2345 
$ strace -p1234 -p2345 -s9999 -e write
太好了!但是我想从Ansible中自动执行这两个步骤,因此我需要在Bash中执行这两个步骤,即不需要手动将两个数字PID转换为两个
-p
参数

我已经尝试过很多事情,比如从PID创建一个数组,尝试用
-p
连接数组,但是一旦它变得如此复杂,你就需要创建一个函数,而我没有太多的范围使用Ansible one liner


谢谢

strace
-p
也接受PID列表,您只需:

strace -p "$(pidof foobar)" -s 9999 -e write

strace
可支持以下格式的
pidof
输出:

-p "`pidof PROG`"
根据oguz的回答,我确定以下方法有效:

strace -p "`pidof foobar`" -s9999 -e writ

是否可以编写一个执行必要命令的脚本并从ansible运行该脚本?是的,这是可能的,但不如避免创建脚本那么理想。谢谢,我检查了
strace
手册页,但没有提到它支持逗号分隔的PID。您提示我检查手册页,其中显示:-p“
pidof PROG
”语法受支持。请检查我的答案,避免使用
-S
选项。