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