Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Awk内部预期_Linux_Bash_Awk_Expect - Fatal编程技术网

Linux Awk内部预期

Linux Awk内部预期,linux,bash,awk,expect,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"" 如果您只需要某个进程的PID,那

我在发送此邮件时出错

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""

如果您只需要某个进程的PID,那么就不需要这些杂乱的东西:
ps aux | grep someagent | grep-v grep | awk'{print$2}'

您可以通过以下方式获得流程PID:

在您的情况下,它将是:

send "someagent_id=$(pgrep SOMEAGENT)\r" 
试试这个:

   someagent_id=$(ps aux | grep someagent| grep -v grep | awk '{print $2}'\r)
   send $someagent_id
``-->以前的版本 $-->新版本。两者都做同样的事情

试试这个

send "someagent_id=`ps aux | grep someagent| grep -v grep | awk '{print \$2}'`\r"
也许用这个只有一根管子的版本更好

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

 ps -C someagent -o pid=

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

你真的需要一个
grep-vgrep
?。。我不觉得不使用这个有什么区别,顺便问一下,如果我grep然后显示2个pid呢?如何消除第二个(我认为这只是pgrep过程)。