2017-02-06 3 views

答えて

0

\はエスケープ文字です。だからあなたの例では、次のようになります。

~ » echo hey\$ya 
hey$ya 
~ » 
1

あなただけの「ちょっと」エコーをseingている理由は、$の、シェルはyaという変数を拡張しようとするということです。そのような変数は存在しないので、空の文字列に展開されます(基本的には消えます)。あなたは、単一引用符を使用することができます

、彼らは変数の展開を防ぐ:

echo 'hey$ya' 

ます。また、文字をエスケープすることができます

echo hey\$ya 

文字列は二重引用符(例えばecho "hey$ya")にもを囲むことができますが、これらは展開を妨げるものではありません。実行しているコマンドの単語を分割して別々の引数に分割するのではなく、式全体を単一の文字列として保持するだけです。あなたの場合、二重引用符を使用することはできません。

+0

また、ここでは一重引用符を使用するのが最適ですが、 'echo" hey $ "ya'を実行することもできます。 – codeforester

+0

私はそれを行うためにsedを使用しています。コンソール上でibコマンドを実行すると動作しますが、スクリプトに追加すると失敗します。なぜこれが起こっているのでしょうか? : – Lost

+0

@Lostあなたが "sedを使用しています"と言ったら、sedを使って何をしているのか説明できますか? – Fred

関連する問題