質問を書くとき:
-
名前付きファイルが変数に保存される場合を一般化しようとしています。
では、zsh
単一のハイフンを含むように変数を設定しようとしています。
% var=-
% echo $var
% var='-'
% echo $var
% var=\-
% echo $var
%
なぜ動作しないのですか?
この点でなぜzsh
違うのですか?bash
どのように$var
設定しますか-
?
ベストアンサー1
また重要なのは、変数の実際の値ではなく、変数の状態であることが多いです。このecho
場合。 Zsh はecho
単一のダッシュをオプションの終了マークとして扱うので、削除します。オンラインマニュアル:
標準に準拠するために、二重ダッシュはオプション処理を終了せずに直接印刷されます。ただし、単一のダッシュはオプション処理を終了するため、最初のダッシュ(オプションの後に続くことがあります)は印刷されませんが、その後のすべてのダッシュは引数として印刷されます。単一ダッシュは他のシェルとは異なる動作をします。テキストを印刷するより移植性の高い方法については、次を参照してください。印刷機能、zshでテキストを印刷するより制御された方法については、以下を参照してください。印刷。
だから私たちは:
zsh% echo -
zsh% echo - -n
-n
zsh% var=-
zsh% printf "%s\n" "$var"
-
また見なさい: