0
私はLinux端末で遊んでいましたが、ここでは説明できない奇妙なことがあります。私は、次のコマンドを入力すると、カレンダーは、端末でフォーマット判明:Linux端末のカレンダーのフォーマット
echo "$(cal)"
をしかし、私は引用符なしで同じコマンドを入力すると、カレンダーがフォーマットされていません。
echo $(cal)
なぜですか?
私はLinux端末で遊んでいましたが、ここでは説明できない奇妙なことがあります。私は、次のコマンドを入力すると、カレンダーは、端末でフォーマット判明:Linux端末のカレンダーのフォーマット
echo "$(cal)"
をしかし、私は引用符なしで同じコマンドを入力すると、カレンダーがフォーマットされていません。
echo $(cal)
なぜですか?
cal
と入力すると、カレンダーは複数行にフォーマットされます。 echo
のマニュアルページには、 "指定された各STRINGを標準出力に書き出します。それぞれの間にはスペースを入れ、最後に改行を入れます。"だから、echo $(cal)
とタイプすると表示されているのはまさにその通りです。cal
の出力の各行は別々の文字列として扱われ、それぞれの間にスペースを入れて標準出力に書き出されます。 echo "$(cal)"
と言うと、出力のリテラル値 - 改行とすべてが得られます。
これは、文字列出力を返すすべてのコマンドに当てはまります。ifconfig
で試してみてください。
希望すると便利です。