アカウント名:
パスワード:
確かに zsh の "[[" は予約語 (事実上の shell builtin) ですが、 "[" も shell builtin です。 また、ksh や bash でも shell builtin な "[[" が使えますので、可搬性の確保という点に関しては余り役に立たないと思います。 敢えて何とか可搬性を確保しようとするなら、"[[" の KSH88 [princeton.edu] 互換機能だけを使うとか、その辺が解になるのではないかと。
このスクリプトは zsh 以外で実行しないでください、という趣旨であれば... /proc/$$/cmdline を調べるか、type zcompile 辺りをうまく使って... という話になるのではないでしょうか。
後から見てみると #1135729 [srad.jp] は読みにくいですね。 箇条書でまとめます ( + 内容追加)。
従って、"["の実装やバージョン間の差異を避けるために"[["を使うのはあまり意味がないのではないか (ash ではエラーになってくれるけど)、という意見です。 まあ、スクリプトの読者に「この条件式は test 外部コマンドに置き換えできないかも知れない」と明示する意義ならありますが。
FYI: KSH88 の条件評価 [princeton.edu] と KSH93 の条件評価 [princeton.edu]。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs
zsh流儀? (スコア:0)
方言があるという意識はある.
ということで zsh script では [ じゃなく [[ で書くようになってしまった
# [[ は zsh 内部コマンド
Re:zsh流儀? (スコア:1)
確かに zsh の "[[" は予約語 (事実上の shell builtin) ですが、 "[" も shell builtin です。 また、ksh や bash でも shell builtin な "[[" が使えますので、可搬性の確保という点に関しては余り役に立たないと思います。 敢えて何とか可搬性を確保しようとするなら、"[[" の KSH88 [princeton.edu] 互換機能だけを使うとか、その辺が解になるのではないかと。
このスクリプトは zsh 以外で実行しないでください、という趣旨であれば... /proc/$$/cmdline を調べるか、type zcompile 辺りをうまく使って... という話になるのではないでしょうか。
Re:zsh流儀? (スコア:2, 参考になる)
後から見てみると #1135729 [srad.jp] は読みにくいですね。 箇条書でまとめます ( + 内容追加)。
従って、"["の実装やバージョン間の差異を避けるために"[["を使うのはあまり意味がないのではないか (ash ではエラーになってくれるけど)、という意見です。 まあ、スクリプトの読者に「この条件式は test 外部コマンドに置き換えできないかも知れない」と明示する意義ならありますが。
FYI: KSH88 の条件評価 [princeton.edu] と KSH93 の条件評価 [princeton.edu]。