はじめまして現在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で質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP preg_matchで Warning: Undefined variableが出ます 1 2022/11/15 17:06
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- WordPress(ワードプレス) Wordpressの記事URLを自由に決めたい 3 2022/06/02 12:05
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perl/Tk使用時のUTF-8コード文...
-
数字を文字列に変換し短縮化する
-
ワイルドカード処理
-
GDBでデバッグするとき文字列の...
-
CSVファイルの中で、「 , 」カ...
-
VBA 文字に半角が含まれて...
-
エクセルにMicrosoft Barcode C...
-
「何とかで始まり、何とかで終...
-
EXCELからCSVにすると余計なカ...
-
エクセルで数値を全角文字(カ...
-
CString から LPCTSTRの型に変換
-
Excel VBAでPDFファイルをMicro...
-
WORDで改ページすると時々グレ...
-
Accessでのグループ化で全角・...
-
英数字のみ全角から半角に変換
-
VBA EXCEL あるセルの中の一...
-
マクロを使ってフォルダー内に...
-
CSVの定義
-
プログラミングでは、半角括弧...
-
正規表現の否定先読みで、複数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パイソンエラーについて
-
Perlで Right関数に近い処理を...
-
Malformed UTF-8 character
-
Perl(Windows)の文法について
-
日本語文字列の指定長(byte)切出し
-
splitの逆の処理
-
メールヘッダのMIMEエンコード...
-
数字を文字列に変換し短縮化する
-
Perl/Tk使用時のUTF-8コード文...
-
文字列と数字を含むセルから数...
-
GDBでデバッグするとき文字列の...
-
perlを使用しての特定行抽出に...
-
プログラミング HSPの変数につ...
-
perlで文字列を短く(圧縮)し...
-
関数chop
-
CSVファイルの中で、「 , 」カ...
-
英数字のみ全角から半角に変換
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
住宅にカナを入力する際に丁目...
おすすめ情報