• 締切済み

シェルの -eq の動作について

シェルの -eq の動作について質問があります。 次のプログラムの動作を例に挙げます。 【ファイル名:A.sh】 #!/bin/sh readonly A=666 B=A echo $B if [ $B -eq 666 ]; then echo XXXXXXX exit 0 fi 「実行方法」 sh B.sh 「実行結果」 A XXXXXXX 【ファイル名:B.sh】 #!/bin/sh readonly A=666 B=A echo $B if [ $B -eq 667 ]; then echo XXXXXXX exit 0 fi 「実行方法」 sh B.sh 「実行結果」 A -Question- A.shを実行すると、処理がif文に入ってしまう理由を教えてください。 変数Bが二重参照しているような気がするのですが、 そのような機能が sh にあるのでしょうか?

みんなの回答

回答No.1

【ファイル名:A.sh】を示しておいて、 >「実行方法」 >sh B.sh とあるのは単なる転記ミスなのか・・・実行しているスクリプトが違っていて勘違いされているかな? あと、ソースファイル上のB=AはB=$Aじゃないとエラーになると思いますが。 「処理がif文に入ってしまう理由」ですが、[ $B -eq 666 ] の結果が真だからでしょう。 「変数Bが二重参照」の部分の意味がよく分からないので、どことどこの二重参照なのか示してもらえれば、質問者様の意図がよくわかると思います。

関連するQ&A