【发布时间】:2022-06-10 21:16:18
【问题描述】:
专家,
需要您的帮助来实现我的要求。我刚开始学习 bash 脚本。
脚本:
#!/bin/bash
tick=5
tock=
while :
do
if [ -z "$tick" ]
then
echo "All Good"
else
echo "call for support"
fi
if [ -z "$tock" ]
then
echo "I am good"
else
echo "call for support now"
fi
sleep 10
done
总结: 在正常情况下,变量 tick 和 tock 都将始终为空。 所以,当我运行这个脚本时,它会每 10 秒回显“All Good”和“I am good”。 在发行状态期间,变量将有一个整数。 当它发生时,else 条件会被触发,它会回显“call for support”和“call for support now”。
我需要的是,当 IF 条件失败时,脚本应该只从 IF 条件中回显一次(请求支持和立即请求支持)并中断循环。
如果我在第一个 ELSE 中中断,则不会读取第二个 IF。 请帮助我实现这一目标。
提前致谢。
【问题讨论】:
-
您是否尝试过使用 AND,就像在任何编程语言中一样?
-
我不太了解您脚本中的逻辑。您将值分配给变量
tock和tick,但之后永远不要更改这些变量。因此,[ -z "$tick" ]将始终为 true(状态代码 0),[ -z "$tock" ]将始终为 false(状态代码 1)。
标签: bash