2016-12-21 17 views
0

タイトルが正確かどうかわかりません。変数の値をリテラル文字列として出力する方法

C:\Windows\file.exe 
:つまり、私は、画面上でこれを見たいと思って、

var=C:\Windows\file.exe 

そして、私はそれが文字列リテラルであるかのように、それは価値だ印刷したい:のは、私は、文字列と変数を持っているとしましょう

しかし、当然のことながら、変数を印刷する通常の方法は、それをしない:

echo $var 
C:Windowsfile.exe 
echo "$var" 
C:Windowsfile.exe 
echo '$var' 
$var 

それはそれを行うことは可能ですか?

+0

、 'bash'または' batch'? – Inian

+0

Bash、この例は気にしないでください。バックスラッシュの使用についてです。 – NPS

+0

バックスラッシュ文字は何を意味していますか? – Jdamian

答えて

3

問題は、後で変数を評価するときではなく、定義時にバックスラッシュがシェルによって操作されていることです。宣言を引用する必要があります。すなわち、シェルエスケープ機構を使用して\をエスケープする必要があります。ここで

は、あなたがやっていることです。

$ var=C:\Windows\file.exe 

$ echo "$var" 
C:Windowsfile.exe 

をここでは何が必要です:再び

$ var='C:\Windows\file.exe' 

$ echo "$var" 
C:\Windows\file.exe 
+0

うわー、私は実際にそれを知っていて、リテラルを引用しようとしたと思っていました。どうやらない。いずれにしてもありがとう。 – NPS

+2

シングルクォートの具体的な使用に注意してください。二重引用符で囲まれた文字列の中には、 '\\' '、' \ $ '、\\の3つのエスケープシーケンスが処理されます。 (最初はコマンド置換を開始しないリテラルバッククォート、パラメータ拡張を開始せずにリテラル '$'を許可する2番目のリテラル、最後にバックスティックまたはドル記号をエスケープしないでリテラルバックスラッシュを指定することができます)。 – chepner

関連する問題