【发布时间】:2018-11-16 05:48:28
【问题描述】:
soham@zcon-63:~$ _OPTION_START_DATETIME=""
soham@zcon-63:~$ _OPTION_END_DATETIME=""
soham@zcon-63:~$ [ -n "${_OPTION_START_DATETIME}"]
soham@zcon-63:~$ echo $?
0
soham@zcon-63:~$ [ -n "${_OPTION_END_DATETIME}"]
soham@zcon-63:~$ echo $?
0
soham@zcon-63:~$ [ -n "${_OPTION_START_DATETIME}"] && [ -n "${_OPTION_END_DATETIME}" ]
soham@zcon-63:~$ echo $?
1
soham@zcon-63:~$
在 shell 中,如果条件为真,则输出为零(0)。 我对二元运算真实逻辑的期望是真实的(0)。 但出乎意料的是,我得到的输出为 false(1)。
【问题讨论】:
-
在结束
]之前需要一个空格。 -
$?不会告诉你条件是真还是假。它只会告诉您先前执行的命令是否成功执行。即使条件失败,命令执行成功也会返回true。