2017-04-19 50 views
0

我必须在脚本中添加if条件。在这种情况下,脚本将在远程机器上运行,如果该脚本的输出包含愿望模式/文本,则条件为真,否则为false。如何改善条件以获得更好的结果?

代息是如下:

ssh [email protected] "cd /net/dell425srv/dell425srv2/apps/;./check_status_splunkforwarder2.sh"

输出脚本运行之后:

的bash $的ssh autoengine @ dell425srv“CD/NET/dell425srv/dell425srv2/apps/ ; ./check_status_splunkforwarder2.sh“splunkd正在运行(PID:537)。 splunk助手正在运行(PID:538)。

如果条件为真,则显示“splunkd is running”,否则“splunkd is not running”。

回答

0

您可以直接使用的grep返回代码,如:

# Remote command in function (for readability only) 
remote_command() 
{ 
ssh [email protected] "cd /net/dell425srv/dell425srv2/apps/;./check_status_splunkforwarder2.sh" 
} 

if 
    remote_command | grep -q "splunkd is running" 
then 
    echo "splunkd is running" 
else 
    echo "splunkd is not running" 
fi 

你可以有一个失败的远程命令执行和失败的grep区分代码:

return_code=0 
output=$(remote_command) || return_code=$? 

if 
    ((return_code)) 
then 
    echo "Remote command failed" 
elif 
    grep -q "splunkd is running" <<<"$output" 
then 
    echo "splunkd is running" 
else 
    echo "splunkd is not running" 
fi