awk里面期待

时间:2017-05-24 13:33:33

标签: linux bash awk expect

发送此内容时遇到错误

send "someagent_id=`ps aux | grep someagent| grep -v grep | awk '{print $2}'`\r"

错误:

can't read "2": no such variable
    while executing
"send "someagent_id=`ps aux | grep someagent| grep -v grep | awk '{print $2}'`\r""

4 个答案:

答案 0 :(得分:0)

如果您想要的只是某个过程的PID,那么您不需要所有这些杂乱的事情: ps aux | grep someagent| grep -v grep | awk '{print $2}'

您可以使用pgrep获取流程PID:

在你的情况下,它将是:

send "someagent_id=$(pgrep SOMEAGENT)\r" 

答案 1 :(得分:0)

试试这个:

undefined

`` - >以前的版本 $ - >新版本。两者都做同样的事情

答案 2 :(得分:0)

试试这个

send "someagent_id=`ps aux | grep someagent| grep -v grep | awk '{print \$2}'`\r"

并且可能更好用这个1管道版本

send "someagent_id=`ps aux | awk '/someagent/ && ! /awk/ {print \$2}'`\r"

答案 3 :(得分:0)

使用ps选项

 ps -C someagent -o pid=

 send "someagent_id=$(ps -C someagent -o pid=)"