を使用するecho
と、残りの行 (シェルによる可能な処理の後) が出力されますstdout
(または、次のプロセスにパイプされる可能性があります)。これによりcal
、コマンドとして扱われなくなります。
"
'nix で使用される引用符には、二重引用符と'
単一引用符のさまざまな種類があります。` バッククォートもあります。それぞれに非常に具体的な用途があります。
バッククォートで囲まれたコマンドはインラインで展開されます。つまり、コマンドが実行され、出力が行に表示されます。したがって、
echo hello `whoami`
ユーザー名 (コマンドへhello john
の応答) が.whoami
john
一重引用符には逆の効果があります。シェルからテキストを「保護」するため、それ以上の処理は試行されません。したがって
echo hello '`whoami`'
結果として
hello '`whoami`'
二重引用符"
は、制限が少し緩和されます。($
変数)、\
(エスケープ)、および ` バッククォートは引き続き解釈されますが、スペースを含む引数をスクリプトに渡す良い方法です。したがって
doSomething for me
、およびの 2 つのパラメーターを関数に渡しdoSomething
ます。一方でfor
me
doSomething "for me"
単一のパラメーターのみを渡します。for me
これがあなたにとって物事を明確にすることを願っています。