読者です 読者をやめる 読者になる 読者になる

ブログの名前なんて適当で良いのでは

説明を求めるな、記事を読め

シェルスクリプトで変数の使い方でつまづいた話。$hogeと¥$hogeの違いは・・・

とある問題を解いていて、¥$hogeならflagが出るのに、$hogeだとフラグが出ないという状況に陥った。そこで、困ってツイートしたところプロの方が、

 

シェルスクリプト入門のページ見ればわかるぞい」

 

と語りかけてくれたので、早速調べてみた。

 

ー結局良い記事が見つからないー

 

そこで、自分でシェルスクリプト作って挙動を確かめればいいや!と思い早速作った。

gistb4a53ffe911af9af3d40

これを実行すると、以下のようになった。

f:id:encry1024:20150824234040p:plain

なるほど。そういうことか、¥をつけることで$が$という文字として認識してくれるのか、つまり変数の中身をしてない文字列になるのか。

 

よくよく考えてみれば、ただのエスケープシーケンスみたいなもんだったよね(白目

ってことは、シェル変数とか環境変数とかを使いたいときに、¥$PATHみたいな形でterminal上で、argv[1]としてC言語とかで渡せば、Terminal上で展開されずに、ちゃんとプログラム内で展開されるってことか。

 

ほむほむ