我有一个if
条件。如果该条件为真,则将运行一个脚本,之后我需要检查另一个条件。
我如何使用if
语句或其他方式来做到这一点?
例如,
if [ condition -eq o ]
then
run script
again condition(this condition depends on above script output value)
run another script
else
exit
答案1
如果第一个条件为真,如何执行第二个条件
您的代码需要具有以下结构:
if [condition -ne 0]
then
do_something
if [expression that depends on exit status of do_something]
then
do something_else
fi
fi
句法
if test-commands; then consequent-commands; [elif more-test-commands; then more-consequents;] [else alternate-consequents;] fi
执行列表
test-commands
,如果其返回状态为零,则consequent-commands
执行列表。如果
test-commands
返回非零状态,则依次执行每个 elif 列表,如果其退出状态为零,则more-consequents
执行相应的操作并完成命令。如果
else alternate-consequents
存在,并且最后的 if 或 elif 子句中的最后命令具有非零退出状态,则alternate-consequents
执行。返回状态是最后执行的命令的退出状态,如果没有条件测试为真,则返回零。
请参阅下面的带有示例的链接。
进一步阅读
- Linux 的 Bash 命令行的 AZ 索引- 与 Bash 命令行相关的所有事物的绝佳参考。
- 条件表达式- 条件表达式由括号表达式和内置测试使用。
- 如果- 有条件地执行命令。
- Bash If 语句示例(If then fi、If then else fi、If elif else fi、嵌套 if)
答案2
这听起来像
first-condition && consequences1
其次是:
(再次)
first-condition && second-condition && consequences2
可以通过在原始内容中if;then;fi
插入辅助内容来将其更改为:if
if [ first-condition ]; then
consequences1
if [ second-condition ]; then # Because first-condition is already true here
consequences2
fi
fi
所以你的consequences2
根本不是一个“其他”问题:)嵌套很有趣。
如果您的第二个条件仅仅基于后果1的输出,那么您可以在第二个测试中运行它if
:
if [ first-condition ]; then
if [ consequences1-test ]; then
consequences2
fi
fi
它应该让你的锅更甜只需记住,测试中可以运行任何内容;只有最后一个命令的返回码(或 stdio 上的输出),但您需要测试某些内容:例如
[ "`consequences1`" == "allok" ]
事宜
答案3
cd lock if [ $(ls -ltr | grep -q exitup) -eq 0 ]; then rm exitup if [ $(Appl_Monitor | echo $?) -ne 110 ]; then kb_shutdown kb_startup if [ $(ls -ltr | grep -q exitup) - eq 0 ]; then rm exitup if [ $(Appl_Monitor | echo $?) -eq 110 ]; then echo " kb app is fine $(ls -ltr | Appli_Monitor | echo $?) | mailx -s "KB App " [email protected] else echo " Warning KB app is not running $(ls -ltr | Appli_Monitor | echo $?) | mailx -s "KB App " [email protected] fi fi fi fi
我根据自己的知识编写了这个脚本。如果有任何错误,请提出建议。其中 kb_startup、kb_shutdown 和 appl_monitor 是 /bin 中定义的程序