シェルの -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
【ファイル名: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にあるのでしょうか?
あと、もう一つ質問があります。
このシェルを古いバージョンで実行すると、
A.sh: line 8: [: A: integer expression exprected
というエラーが出てしまいます。
これについても、わかる人がいましたら教えてください。
No.1ベストアンサー
- 回答日時:
1.> A.shがif文に入ってしまう理由を教えてください。
2.> A.sh: line 8: [: A: integer expression exprected
1.については、仰っている意味がよく分かりません。"A.sh"という文字列が if 文の中に見当たりません。
2.については、if 文の条件式が [ A -eq 666 ] のように展開されてしまいます。数値判定式として成立しないことによるエラーです。「B=A」部を「B=$A」にすれば良いと思います。
ありがとうございます。
2についてはわかりました。
1の質問については、書き直しをしたいと思いますので、
改めて質問を投稿させていただくことにします。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) zshの例外処理 1 2022/06/02 16:36
- その他(プログラミング・Web制作) ログインシェル時のSHELL環境変数 1 2022/06/08 19:21
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- UNIX・Linux Linuxのシェル関数を作成して要件を満たす方法 1 2022/11/19 20:33
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- UNIX・Linux Linuxのメッセージを出力して処理を終了する方法 1 2022/11/19 20:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メニュー画面よりコマンド実行...
-
vi利用時でのbeep音の消し方
-
lsコマンドの色設定が反映されない
-
コマンド終了ステータス
-
cronでaws_s3にデータを格納す...
-
FTPコマンドの戻り値について
-
csh(Cシェル)のevalに関して
-
diskpart でパーティションの一...
-
複数の処理を順番にログアウト...
-
Bシェル内でのユーザー変更
-
Bシェルでパイプ→exitがうまく...
-
Viで書き込もうとすると、保...
-
scpコマンドでリモートサーバの...
-
cactiでグラフが表示されない
-
書き込み権限が無いためコピー...
-
Illustratorのデータをまとめて...
-
minicomでよく使うコマンド文字...
-
FTP接続中のコマンド実行結果を...
-
windows server(raid5)→dd
-
/ が何時の間にか「Read-only f...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド終了ステータス
-
FTPコマンドの戻り値について
-
cshで変数名の入れ子ができない
-
lsコマンドの色設定が反映されない
-
実行中のシェルスクリプト自体...
-
diskpart でパーティションの一...
-
Mac OSXのターミナルでemacsを起動
-
cronでftp自動転送を行いたい
-
telnet へのパイプができないです
-
cshの標準出力を制御したい
-
複数の処理を順番にログアウト...
-
vagrant upでエラーが表示され...
-
kshでのcase文条件範囲について
-
UNIX Cシェルで実数の比較
-
shellから起動したkterm上でコ...
-
空白を含んだシェル変数の代入
-
PHP4の Warning: pg_freeresul...
-
シェルスクリプトのYes、Noの入...
-
cygwinシェルスクリプト内での...
-
メニュー画面よりコマンド実行...
おすすめ情報