シェルスクリプトで入力されたパラメ-タ(ユーザとパスワード)のチェックを
javaで行いたいのですが、どうしたらよいか教えていただきたいです。
よろしくお願いします。
例:パスワードに使用不可文字があれば、「エラー」と出力する。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
シェルスクリプトに渡されたパラメータは、$1、$2で参照できるので、それをJavaプログラムを実行する時に
渡してあげればやりたいことはできると思います。
また、JavaでSystem.exit()の引数で渡した値が、シェルスクリプトの$?で受け取ることができるので、
その値を元に正常終了したのか異常終了したのか判断することができます。
- コマンドラインでの実行例
bash
1bash sample.sh user1 password1 2
- 各種プログラム
bash
1#/bin/bash 2 3java SampleCheck $1 $2 4 5if [ $? -eq 0 ]; then 6 echo "Success" 7else 8 echo "Error" 9fi
Java
1public class SampleCheck { 2 public static void main(String...args) { 3 String userId = args[0]; // シェルスクリプトの$1 4 String password = args[1]; // シェルスクリプトの$2 5 6 boolean isError = false; 7 // ここでやりたいチェックを行う。 8 if (isError) { 9 System.exit(1); 10 } 11 } 12}
ちなみに、正常、異常の出力は、 System.out.println
やSystem.err.println
などを使えば
Javaでも行うことはできます。
投稿2016/09/21 02:06
総合スコア276
0
シェルスクリプトでは、コマンドライン引数は$1
、$2
で取得できます。
Javaでは、コマンドライン引数はmain(String[] args)
関数のargs[0]
、args[1]
に渡されます。
無効な文字ではなく、有効な文字だけでパスワードが構成されているかをチェックするコードです。
VALID_CHARSにパスワードとして許可する文字を並べてください。
passchk.sh
bash
1echo "USER: $1" 2echo "PASS: $2" 3 4java PassChk "$1" "$2" 5 6#戻り値の表示。0の場合正常、1の場合異常 7echo $?
PassChk.java
public class PassChk { public static final String VALID_CHARS = "01234567890abcdefghijklmnopqrstuvwxyz"; public static void main(String[] args) { String user = args[0]; String pass = args[1]; boolean result = passchk(pass); System.exit(result ? 0 : 1); } private boolean passChk(String s) { boolean result = true; int len = s.length(); for (int i = 0; i < len; i++) { char ch = s.charAt(i); if (-1 == VALID_CHARS.indexOf(ch)) { result = false; break; } } return result; } }
投稿2016/09/21 02:05
編集2016/09/21 02:31総合スコア6621
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
javaでUIを持たないコンソールプログラムを作成し、与えられたパラメータのチェックのみを行う
終了時にステータスを設定し、エラーステータスであれば、シェル側でチェックしてエラーを表示する
ステータス設定方法
http://qa.atmarkit.co.jp/q/845
投稿2016/09/21 01:53
総合スコア5488
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/21 04:08