いつもお世話になっております。
宜しく御願い致します。
if文で数値判断により条件分岐をしようと思ってます。
条件は”0<変数<=20”(仮)で、エラーだと警告文表示後に変数入力部に戻したいのです。
変数を画面上から”変数 = $<”で読み込み、処理をしたいのですが、うまくいきません。
整数値だとうまく行く方法を見つけましたが、小数値が入るとNG、小数値でもうまく行く方法を見つけました(bcを使用)が、文字列が入力されるとNG、と行き詰まってしまいました。
入力値としては小数値を期待しているのですが、操作する人が間違って”3..2”や”2 5”、”4rr”等が入力された場合も偽の判断をもって処理を戻したいのですが、ifの形式がおかしいとか、文法上のエラーがあると表示され、うまく戻ってくれません。
なにか良い方法はないでしょうか?
要は、if(変数 > 0 && 変数 <= 20) then で変数の値が文字列、小数、整数問わずに処理をしたいだけなんですが・・・。
どうぞ宜しく御願いします。
No.4ベストアンサー
- 回答日時:
expr等を使って正規表現で判断するしかないでしょうね。
\| の前が小数値、後ろが整数値のチェックです。expr以外でも正規表現が使えるコマンドなら何でもいいですが。
expr "$var" : '[0-9][0-9]*\.[0-9][0-9]*$' \| "$var" : '[0-9][0-9]*$' >/dev/null
if( $status == 0 ) then
正常処理
else
エラー処理
endif
詳細な回答有難うございます。
このようなやり方は想像つきませんでしたが、条件をたくさん設定して、エラー入力を回避するしかないみたいですね・・・。参考にさせて頂きます。
No.3
- 回答日時:
文法エラーのメッセージを /dev/null に捨てたらどうですか。
あるいは、一旦 exprコマンドで数値としての形式を取っているか確かめてから、cshのif文を行うとか。
いずれにせよ、シェルスクリプトをcshで書くことはお薦めできません。
cshは対話利用にとどめてshで書く方が良いと思いますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- C言語・C++・C# C言語:数値の桁数指定についての質問です。 8 2022/05/26 23:53
- Ruby プログラミング 3 2023/06/09 14:30
- Java Java 南京錠 2 2023/02/04 11:46
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) Excel 条件付き書式について 1 2022/12/14 20:38
- Excel(エクセル) VBAで “:” を含むセルの特定 2 2023/05/11 16:30
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- JavaScript 助けてください‼︎ javascriptで質問があります。 配列を定義して、 29342、45342 3 2022/06/26 22:06
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
Cシェル内でBシェルの様な関数の記述方法はありますか?
UNIX・Linux
-
cshで文字列分割
その他(プログラミング・Web制作)
-
cshの文字列操作(0埋め)
その他(プログラミング・Web制作)
-
-
4
cshで拡張子を除いたファイル名を取得したい
その他(プログラミング・Web制作)
-
5
cshでエラー出力を出さないようにしたい
UNIX・Linux
-
6
UNIX Cシェルで実数の比較
UNIX・Linux
-
7
Cシェルでの文字列大小比較
その他(プログラミング・Web制作)
-
8
シェルスクリプトでファイル内の数値文字列を数値として扱うには
その他(プログラミング・Web制作)
-
9
『存在するかどうか分からない』環境変数にcshで新しいパスを設定したい
UNIX・Linux
-
10
Cシェルでのファイルからの入力について
その他(OS)
-
11
Cシェルの switch~endsw の使い方を教えてください。
その他(OS)
-
12
cshでsubstr
その他(プログラミング・Web制作)
-
13
cshで変数に値が入っているかどうか見る方法
UNIX・Linux
-
14
shellスクリプトから別のshellスクリプトを呼び出す方法
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
市販DVD再生ができません。ubun...
-
カーネル通信中にエラー
-
MacTheRipperのユニバーサルバ...
-
'ntuser.ini' を処理中
-
シェルスクリプト文字列の処理...
-
WordpressでAMPのプラグインが...
-
iphotoのエラー「フォトライブ...
-
G4 Cube CD-Rドライブの手入れ
-
冗長の失敗した場合の対処
-
「ページでエラーが発生しまし...
-
同一LAN内からapacheにアクセス...
-
メールアドレスが生きているか...
-
特定の Web サイトにアクセスで...
-
異常にクラッシュやブルースク...
-
TTPMACRO マクロ ATコマンド...
-
ubuntu apt, apt-getのUpdate時...
-
日本語フォルダ名をワイルドカ...
-
ShellScriptの初歩
-
外付けHDにデータが入れられない
-
わかりません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
市販DVD再生ができません。ubun...
-
マザーボードの赤いランプの意...
-
UNIX(Cシェル)での数値...
-
WordpressでAMPのプラグインが...
-
メールアドレスが生きているか...
-
ログにserver reached MaxReque...
-
ビット落ちとは一体何なのでし...
-
数年前からWindows10 の Update...
-
LyricsMasterでエラーが出てし...
-
HDD交換修理したWindows10・...
-
オーバークロックソフトのエラ...
-
makeコマンドのエラーについて(
-
CD-Rで音楽が焼けない
-
Androidのログ
-
特定の Web サイトにアクセスで...
-
HDDエラーチェック情報(Crystal...
-
毎回同じログオンスクリプト(...
-
SaAT Netizen(NzSess.exe)のメ...
-
同一LAN内からapacheにアクセス...
-
VMwareにCentOSをインストール...
おすすめ情報