作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
> /var/log/stupid-test.l-6ren">
我制作了一个完全出乎我意料的 Upstart 脚本。
愚蠢的测试.conf
script
VALUE="PONG"
echo "START" >> /var/log/stupid-test.log
if [ "$VALUE" == "PONG" ]; then
echo "GOOD PONG" >> /var/log/stupid-test.log
fi
if [ "$VALUE" != "PONG" ]; then
echo "BAD PONG" >> /var/log/stupid-test.log
fi
if [ "$VALUE" == "PING" ]; then
echo "BAD PING" >> /var/log/stupid-test.log
fi
if [ "$VALUE" != "PING" ]; then
echo "GOOD PING" >> /var/log/stupid-test.log
fi
echo >> /var/log/stupid-test.log
end script
stupid-test.log
START
GOOD PING
当然,如果您在 bash 中执行完全相同的命令,它会完美运行:
START
GOOD PONG
GOOD PING
这似乎适用于您可以放入 VALUE
中的任何内容——我已经尝试过整数和字符串。
最佳答案
在执行相等性测试时使用=
而不是==
。 ==
是一个 bash 扩展,它在 upstart
运行的 shell 中不可用。 Upstart runs all scripts using /bin/sh -e
.在 Ubuntu 系统上,/bin/sh
是 dash
,而不是 bash
。
关于bash - Upstart If 语句执行不合逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20558818/
我是一名优秀的程序员,十分优秀!