2017-04-02 6 views
0

私はLinux端末で遊んでいましたが、ここでは説明できない奇妙なことがあります。私は、次のコマンドを入力すると、カレンダーは、端末でフォーマット判明:Linux端末のカレンダーのフォーマット

echo "$(cal)" 

をしかし、私は引用符なしで同じコマンドを入力すると、カレンダーがフォーマットされていません。

echo $(cal) 

なぜですか?

答えて

0

calと入力すると、カレンダーは複数行にフォーマットされます。 echoのマニュアルページには、 "指定された各STRINGを標準出力に書き出します。それぞれの間にはスペースを入れ、最後に改行を入れます。"だから、echo $(cal)とタイプすると表示されているのはまさにその通りです。calの出力の各行は別々の文字列として扱われ、それぞれの間にスペースを入れて標準出力に書き出されます。 echo "$(cal)"と言うと、出力のリテラル値 - 改行とすべてが得られます。

これは、文字列出力を返すすべてのコマンドに当てはまります。ifconfigで試してみてください。

希望すると便利です。

関連する問題