无法读取输出以运行下一个命令

时间:2015-01-15 12:05:28

标签: linux bash shell unix scripting

当执行此脚本时,我得到PID,现在我想读取输出“PID”并以这种方式运行下一个命令

ps -ef | grep -i PID  


while read -r -u10 server port line  
do  
 echo ==========  server: "$server" port: "$port"  ==========  
ssh -qn "$server" "netstat -tulpunt | grep -E ":$port "" | awk '{print $7}' | grep '/' | awk -F "/" '{print $1}'  
echo  
done 10< demo  

示例输出

========== server: Server1   port: 1311 ==========  
8063  

========== server: Server2   port: 1311 ==========  

========== server: Server3    port: 8000 ==========  
1505  

========== server: Server4   port: 1311 ==========  
8122  

1 个答案:

答案 0 :(得分:0)

  

现在我想读取输出“PID”

我们可以将输出分配给变量。

PID=`ssh -qn "$server" "netstat -tulpunt | grep -E ":$port "" | awk '{print $7}' | grep '/' | awk -F "/" '{print $1}'`

如果你还想看到它:

echo $PID
  

以这种方式运行下一个命令

ps -ef | grep -i PID

这是一个经常被看到但却很愚蠢的习语。更好地使用

ps -fp$PID