[[$ var]]ではなく[[-n $ var]]なのはなぜですか?

トム・ヘイル

、この答え私は読んでいくつかのコードを持っていました:

if [[ $ZSH_VERSION ]]; then

これは次のように編集されました:

if [[ -n $ZSH_VERSION ]]; then

更新:編集コメントを見たところです:

[[x]]は最近までzshで機能しませんでした

zshリリースノートを調べましたが、これへの参照が見つかりませんでした。

どのzshバージョンが最初に許可されました[[ x ]]か?

放棄された

zsh5.5.1ドキュメントCONDITIONAL EXPRESSIONS

互換性のために、構文的に重要ではない単一の引数(通常は変数)がある場合、条件は、式がゼロ以外の長さの文字列として展開されるかどうかのテストとして扱われます。つまり、[[$ var]]は[[-n $ var]]と同じです。可能な場合は、2番目の明示的な形式を使用することをお勧めします。

ソースツリーが周りにあると、

% grep -rl 'if there is a single argument' .
./Doc/Zsh/cond.yo
% git blame ./Doc/Zsh/cond.yo | grep 'if there is a single argument'
d082827c83 (Jun T             2014-05-18 22:03:35 +0900 198) For compat...

を調べるgit logと、コードの変更がドキュメントよりも少し早く行われたことがわかります。

commit 9d47e8398d299e53ffe4e7ddf3731d2fedae9948
...
Date:   Tue May 13 08:16:50 2014 -0700

    32609: [[ $var ]] behaves as [[ -n $var ]] for bash/ksh compatibility

ChangeLogファイルのへのマッピングはgit tag私にはわかりませんが、zsh5.0.6(Thu Aug 28 19:07:04 2014 +0100)がこの変更を加えた最初のバージョンであるように見えます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

シェル:なぜ[-n "$ VAR"]ではなく[-n "$ {VAR-}"]なのですか?

分類Dev

次の出力が `3`ではなく` $ var`になるのはなぜですか?

分類Dev

[@(!var)class]が「__NSCFBoolean」ではなく「__NSCFNumber」を返すのはなぜですか?

分類Dev

varがhtml構造ではなくNaNを返すのはなぜですか?

分類Dev

なぜN:Mではなく1:Mなのか(ER図)

分類Dev

`--var`と` var-1`の動作が異なるのはなぜですか?

分類Dev

TreeSet IterationがO(n * logn)ではなくO(n)になるのはなぜですか?

分類Dev

var =-が機能しないのはなぜですか?

分類Dev

/var/log/kern.logがないのはなぜですか?

分類Dev

$ ARRAY + = $ varが機能しないのはなぜですか?

分類Dev

++var++ が正当な Javascript 式ではないのはなぜですか?

分類Dev

Pythonがn番目ではなくn + 1番目のリスト要素を返すのはなぜですか?

分類Dev

このコードがO(n)ではなくGo O(n²)にあるのはなぜですか?

分類Dev

このJavaScriptの名前付き関数式がvarなしではなくvar付きで例外をスローするのはなぜですか

分類Dev

echo -e "\ n"で1行ではなく2行の空白行が表示されるのはなぜですか?

分類Dev

javascript varを複数回宣言できるのはなぜですか?

分類Dev

Xcodeがvarではなくletの使用を主張し続けるのはなぜですか?

分類Dev

[-n]が[-n ""]のように偽ではないのはなぜですか?

分類Dev

[-n]が[-n ""]のように偽ではないのはなぜですか?

分類Dev

内部ループが(n)回ではなく(n / 2)回実行されるのはなぜですか

分類Dev

.rstrip( '\ n')が機能しないのはなぜですか?

分類Dev

フィボナッチ数列がO(logn)ではなくBig O(2 ^ n)であるのはなぜですか?

分類Dev

N = 1の場合、[0]ではなく空のリストが表示されるのはなぜですか

分類Dev

varがdoubleではなくintに評価されるのはなぜですか?

分類Dev

Goのforループで 'var'を使用できないのはなぜですか?

分類Dev

Popen.communicate()が 'hi'ではなくb'hi \ n 'を返すのはなぜですか?

分類Dev

let = 0は有効だがvar = 0は無効なのはなぜですか?

分類Dev

varが非推奨にならないのはなぜですか?

分類Dev

Android Studioで「var」を使用できないのはなぜですか?

Related 関連記事

  1. 1

    シェル:なぜ[-n "$ VAR"]ではなく[-n "$ {VAR-}"]なのですか?

  2. 2

    次の出力が `3`ではなく` $ var`になるのはなぜですか?

  3. 3

    [@(!var)class]が「__NSCFBoolean」ではなく「__NSCFNumber」を返すのはなぜですか?

  4. 4

    varがhtml構造ではなくNaNを返すのはなぜですか?

  5. 5

    なぜN:Mではなく1:Mなのか(ER図)

  6. 6

    `--var`と` var-1`の動作が異なるのはなぜですか?

  7. 7

    TreeSet IterationがO(n * logn)ではなくO(n)になるのはなぜですか?

  8. 8

    var =-が機能しないのはなぜですか?

  9. 9

    /var/log/kern.logがないのはなぜですか?

  10. 10

    $ ARRAY + = $ varが機能しないのはなぜですか?

  11. 11

    ++var++ が正当な Javascript 式ではないのはなぜですか?

  12. 12

    Pythonがn番目ではなくn + 1番目のリスト要素を返すのはなぜですか?

  13. 13

    このコードがO(n)ではなくGo O(n²)にあるのはなぜですか?

  14. 14

    このJavaScriptの名前付き関数式がvarなしではなくvar付きで例外をスローするのはなぜですか

  15. 15

    echo -e "\ n"で1行ではなく2行の空白行が表示されるのはなぜですか?

  16. 16

    javascript varを複数回宣言できるのはなぜですか?

  17. 17

    Xcodeがvarではなくletの使用を主張し続けるのはなぜですか?

  18. 18

    [-n]が[-n ""]のように偽ではないのはなぜですか?

  19. 19

    [-n]が[-n ""]のように偽ではないのはなぜですか?

  20. 20

    内部ループが(n)回ではなく(n / 2)回実行されるのはなぜですか

  21. 21

    .rstrip( '\ n')が機能しないのはなぜですか?

  22. 22

    フィボナッチ数列がO(logn)ではなくBig O(2 ^ n)であるのはなぜですか?

  23. 23

    N = 1の場合、[0]ではなく空のリストが表示されるのはなぜですか

  24. 24

    varがdoubleではなくintに評価されるのはなぜですか?

  25. 25

    Goのforループで 'var'を使用できないのはなぜですか?

  26. 26

    Popen.communicate()が 'hi'ではなくb'hi \ n 'を返すのはなぜですか?

  27. 27

    let = 0は有効だがvar = 0は無効なのはなぜですか?

  28. 28

    varが非推奨にならないのはなぜですか?

  29. 29

    Android Studioで「var」を使用できないのはなぜですか?

ホットタグ

アーカイブ