【发布时间】:2022-01-26 01:19:15
【问题描述】:
假设我有以下代码,其中is_wednesday 是一个函数,它在星期三返回 0,在其他日子返回 1。
print_wednesday() {
is_wednesday && local WEDNESDAY="Yes!" || local WEDNESDAY="No!"
echo "Is today Wednesday? $WEDNESDAY"
}
有没有办法给局部变量赋值会返回 1,在这个例子中会导致在星期三打印 Is today Wednesday? No!?
【问题讨论】:
-
只需使用正确的
if then else,您就不必担心模糊的故障模式。 -
如果我用
true或false替换is_wednesday,那么我会得到描述的输出。不幸的是,我不清楚这个问题。 -
@GordonDavisson 也许我没有选择最好的例子。问题不在于构造,而纯粹是关于变量赋值的返回值。
-
@Cyrus
A && B || C不等于if A; then B; else C; fi。如果 A 返回 true 而 B 返回 false,则 C 仍然被执行。因此,如果local WEDNESDAY="Yes!"可能以某种方式返回 false,则local WEDNESDAY="No!"将被执行,并且您将在星期三得到No!。 -
我看不出有任何方法可以将固定字符串(此处:
Yes!)分配给变量可以返回1(带有bash)。