0

これは私が正しく取得しようとしているコードですが!、最初のテストにのみバインドされるため、論理的に正しくないことはわかっています。

# if Vim was compiled in the same month, skip.
if ! [[ -f /usr/local/bin/vim ]] && /usr/local/bin/vim --version | grep "compiled $(date +%b) [0-9]{1,2} $(date +%Y) " -

論理的に間違っていると私が知っている理由は次のとおりです。

$ if ! [[ a == b ]] && [[ c == c ]]; then echo yy; fi
yy

$ if ! [[ a == a ]] && [[ a == c ]]; then echo yy; fi

$
4

2 に答える 2

1
if [[ a != a ]] || [[ a != c ]]; then echo yy; fi

また:

if ! /usr/local/bin/vim --version 2> /dev/null | grep "compiled ...
于 2013-07-15T08:49:36.397 に答える
1

解決策はカーリーを使用することだと思います:

$ if ! { [[ a == a ]] && [[ a == c ]]; }; then echo yy; fi
yy

もっとエレガントなものはないだろうか。

于 2013-07-15T06:48:32.643 に答える