
はじめまして現在Perlでスクリプトを作成しています。
やりたいことは
・ユーザがコマンドラインより文字(ユーザID)を入力
・その文字列が#getent passwdの結果にあるか無いかで処理を分ける
です。
#getent passwd | grep hogehogeの結果は下記のとおりです。
hogehoge:x:1210:104:staff:/home/data/staff/hogehoge:/bin/bash
これより先頭の[hogehoge]とユーザが入力したhogehogeが完全一致すれば問題ありません。
正規表現を調べましたが文字列での一致はあるのですが引数での文字列が調べることが出来ませんでした。
よろしくお願いします。
print "Enter User ID\n";
$id = <STDIN>;
chomp($id);
$cmd =`getent passwd | grep $id`;
system($cmd);
if ($cmd == ~ /^$id/) {
print "There is not ID\n";
} else {
print "Your ID is there\n";
}
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
だから, 単に「できない」とだけ書くんじゃなくてどのように「できない」のかをきちんと書こうよ. 「どのような値を入力したのか」「その入力に対してどのような結果を期待したのか」「実際に得られた結果はどうだったのか」くらいは書けるよね. あと, 「正規表現を調べましたが文字列での一致はあるのですが引数での文字列が調べることが出来ませんでした」の意味も分からん. 「引数での文字列」って何? 「引数」とどこが関係するの?
ま, とりあえず「正規表現がど~のこ~の」以前におかしいんだけど. 特に
$cmd =`getent passwd | grep $id`;
system($cmd);
if ($cmd == ~ /^$id/) {
のあたりには「あなたは何がしたいのですか」的なものを感じる. 後の流れによるんだけど
sub find_user {
my ($id) = @_;
open PASSWD, '-|', qw(getent passwd);
while (<PASSWD>) {
chomp;
return $_ if /^$id:/;
}
return '';
}
ってサブルーチンを作った方が喜ばれるんじゃないかなぁ.
ありがとうございました。サブルーチンを作って対応しました。
まだperlをはじめて1週間の初心者で質問の方法も分からず失礼しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定文字列の抽出
-
Malformed UTF-8 character
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
CSVの定義
-
Excelについて質問です。 セル...
-
英数字のみ全角から半角に変換
-
EXCELからCSVにすると余計なカ...
-
住宅にカナを入力する際に丁目...
-
各項目がダブルクォーテーショ...
-
VBA 文字に半角が含まれて...
-
エクセルでの”々”の扱い
-
IEからEdgeへの移行に伴うIMEの...
-
COBOL・全角判定
-
文字コードの%E3%80%とは何です...
-
カンマ区切りの数字をCSVフ...
-
メモ帳の段落の揃え方
-
半角/全角文字混在データの分...
-
EXCEL VBA でCTRL+Fのダイア...
-
WORDで改ページすると時々グレ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パイソンエラーについて
-
Perlでさらに気の利いた文字列...
-
以下のperlのプログラムについて
-
Excel2003 IF関数の条件指定方法
-
直前のワードとの間にスペース...
-
掲示板の管理者画面でログイン...
-
カートの送料設定を2個まで1個...
-
splitの逆の処理
-
関数chop
-
文字列にコントロール文字を含...
-
GDBでデバッグするとき文字列の...
-
Perl(Windows)の文法について
-
Perlで Right関数に近い処理を...
-
10進数を表す文字列を整数型に
-
トリッププログラム!?
-
Malformed UTF-8 character
-
正規表現による検索
-
Perlの文字列置換について
-
'\\"'はなの意味ですか
-
CGI.pmのcheckboxの-labelにHTM...
おすすめ情報