*.shファイルに保存すると、コマンドは動作が異なります。

*.shファイルに保存すると、コマンドは動作が異なります。

この質問に対する答えが見つかりません。おそらくあなたの一人が私を助けてくれるでしょう。 :)

私はこれを自動化するのに役立ついくつかのシェルスクリプトを書いていて、実際に動作しました。しかし、私にカラーテキストを追加することはうまくいきませんecho。端末に直接コマンドを入力すると機能しますが、コマンドを* .shファイルに入れても機能しません。

質問

コンテンツfoo.sh:

echo "\n\e[1;37mHello World\e[0m\n"

誰でも問題が何であるかを私に説明できますか?ああ、そしてそれが重要であれば、私はzshを使用しています。

よろしくお願いします:)

修正する

明らかに内容が出たらfoo.sh例:

echo $'\n\e[1;37mHello World\e[0m\n'

私は答えを見つけましたhttp://wiki.bash-hackers.org/syntax/quoting、netmonkの答えのおかげで。だから私は彼の答えを正解として受け入れます。ありがとうございます :)

答え1

ファイルを保存するときは、sh次のように、すべての項目の前に「シェル」宣言行を追加できます。

#!/bin/sh

# the code

シェルでテストしたときと同じ結果を得るには、この行をシェルを表す行に変更します。

答え2

はい、これは重要です! echo コマンドは異なる場合があります。シェルプログラム内に組み込まれたコマンドまたは別々の独立したコマンドです。

これにより、zshで使用されるエコーがSHシェルスクリプトで呼び出されるエコーと異なると考えることができます。 :)

-eスクリプトにエコーを追加する必要があります!

関連情報