私のスクリプトには、次のechoステートメントがあります。
echo -ne "Check Script";
印刷されると予想されます
Check Script
ただし、次のような結果が表示されます。
-ne Check Script
ただし、別のコンピュータで同じスクリプトを実行すると、期待した結果が表示されます。スクリプトが異なる動作をするコンピュータ固有の変数またはプロパティがある可能性があります。
答え1
これはPOSIXとUNIXの一貫した動作ですecho
。 UNIXの一貫性のために、次のようにecho
書くことができます。
echo 'Check Script\c'
最高いいえechoを使用し、代わりにprintfを使用してください。これは移植性の問題が少ない。
printf %s 'Check Script'
POSIXではこれを-n
拡張として受け入れます(ただし、指定されていない動作を含む)。echo -e
出力を意味するので、-e\n
このコンテキストでは POSIXbash
とzsh
互換性がありません。