Bash 两个“;如果;同时条件
我正在编写一个脚本,通过多选菜单中的ssh从其他节点获取数据,并希望根据这些数据显示一条消息Bash 两个“;如果;同时条件,bash,if-statement,choice,Bash,If Statement,Choice,我正在编写一个脚本,通过多选菜单中的ssh从其他节点获取数据,并希望根据这些数据显示一条消息 if [[ "$option" == "1" ]] then ssh skyusr@<IP> "export JAVA_HOME=/opt/mesosphere && /var/lib/mesos/slave/slaves/*/frameworks/*/executors/*/runs/latest/apache-cassandra-3.0.10/bin/nodetool
if [[ "$option" == "1" ]]
then
ssh skyusr@<IP> "export JAVA_HOME=/opt/mesosphere && /var/lib/mesos/slave/slaves/*/frameworks/*/executors/*/runs/latest/apache-cassandra-3.0.10/bin/nodetool -p 7199 status" | sed -n '6,10p' | awk '{print $1,$2}' | grep DN > $file_name
if [ -s $file_name ]
then
echo "All Cassandra Nodes are UP !"
else cat "$file_name"
fi
fi
如果[[“$option”==“1”]]
然后
ssh skyusr@“export JAVA_HOME=/opt/mesosphere&/var/lib/mesos/slave/slaves/*/frameworks/*/executors/*/runs/latest/apache-cassandra-3.0.10/bin/nodetool-p7199状态”| sed-n'6,10p'| awk'{print$1,$2}'| grep DN>$file|name
如果[-s$文件名]
然后
echo“所有Cassandra节点都已启动!”
else类别“$file\u name”
fi
fi
当我执行脚本时,我看到它没有看到显示消息的第二个if条件
正确的语法是什么?据我所知,语法没有问题。您可能想做一些关于间距等的事情来提高可读性,但就是这样 我假设,
文件名
设置在这个部分之前的某个地方,就像选项一样
如果事情不能按预期工作,可以添加一些语句进行调试,以后必须删除这些语句。例如,在本例中,我希望查看ssh
的输出,并添加一些echo以查看流控制:
if [[ "$option" == "1" ]] ; then
ssh skyusr@<IP> "export JAVA_HOME=/opt/mesosphere && /var/lib/mesos/slave/slaves/*/frameworks/*/executors/*/runs/latest/apache-cassandra-3.0.10/bin/nodetool -p 7199 status" > tempfile
cat tempfile |
sed -n '6,10p' |
awk '{print $1,$2}' |
grep DN > "$file_name"
if [ -s "$file_name" ] ; then
echo "All Cassandra Nodes are UP !"
else
echo "$file_name is not empty"
cat "$file_name"
fi
fi
如果[[“$option”==“1”];然后
ssh skyusr@“export JAVA_HOME=/opt/mesosphere&&/var/lib/mesos/slave/slaves/*/frameworks/*/executors/*/runs/latest/apache-cassandra-3.0.10/bin/nodetool-p 7199 status”>临时文件
cat临时文件|
sed-n'6,10p'|
awk“{打印$1,$2}”|
grep DN>“$file\u name”
如果[-s“$file_name”];然后
echo“所有Cassandra节点都已启动!”
其他的
echo“$file\u name不为空”
cat“$文件名”
fi
fi
您可以使用tempfile
来验证您的sed
、awk
、grep
组合是否正确工作。您如何“看到它没有看到第二个if条件”?您是否尝试过使用set-xv
运行它?