我遇到的问题是,我需要一个 if 语句来确保第一个语句为真,并且以下三个语句中的一个或多个在 bash 脚本中也为真。
我目前拥有的代码是:
if [[ $TAIL != "true" ]] && [[ -f $FILE_DIR/.completed ]] || [[ -f $FILE_DIR/../.completed ]] || [[ -f $FILE_DIR/../../.completed ]]
我也尝试过:
if [[ $TAIL != "true" ]] && [[ [[ -f $FILE_DIR/.completed ]] || [[ -f $FILE_DIR/../.completed ]] || [[ -f $FILE_DIR/../../.completed ]] ]]
但都不起作用。
有人对如何解决这个问题有任何想法吗?
提前感谢您的帮助。
答案如下:
if [[ $TAIL != "true" ]] && ( [[ -f $FILE_DIR/.completed ]] || [[ -f $FILE_DIR/../.completed ]] || [[ -f $FILE_DIR/../../.completed ]] )
最佳答案
您可以在一个 [[]] 内完成所有操作:
if [[ $TAIL != "true" && ( -f $FILE_DIR/.completed || -f $FILE_DIR/../.completed || -f $FILE_DIR/../../.completed ) ]]
关于Bash 脚本 if 语句后跟多个 OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14585488/