2

最初のステートメントが真であり、次の3つのステートメントの1つ以上がbashスクリプトでも真であることを確認するifステートメントが必要なという問題があります。

私が現在持っているコードは次のとおりです。

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 ]] )
4

2 に答える 2

3

すべてを 1 つの [[]] 内で実行できます。

if [[ $TAIL != "true" && ( -f $FILE_DIR/.completed || -f $FILE_DIR/../.completed || -f $FILE_DIR/../../.completed ) ]]
于 2013-01-29T15:11:32.647 に答える
2

OR ステートメントを括弧でグループ化できます。

if [[ $TAIL != "true" ]] && ( [[ -f $FILE_DIR/.completed ]] || [[ -f $FILE_DIR/../.completed ]] || [[ -f $FILE_DIR/../../.completed ]] )
于 2013-01-29T14:44:58.260 に答える