したがって、etc / passwdにユーザーに関するいくつかの情報をリストしようとしています。これまで、私はuid 1000で始まるすべてのユーザーを記録するスクリプトを得ました。特定のユーザーに関する情報を作成するには、他の関数が必要です。例: Bash myprogram.sh -ul Erik 次に、スクリプトは、特定のユーザーのユーザー名、パスワード、uid、guid、説明、ディレクトリ、およびシェルを一覧表示します。プログラムは$ 1をコマンドとして使用し、$ 2をユーザー名にする2番目の入力として使用します。
答え1
以下getent
を使用してこれを実行できますawk
。
パスワードの取得Eric | awk -F: '{print "ユーザー名: " $1 "\nパスワード: " $2 "\nUid: " $3 "\nGid: " $4 "\nコメント: " $5 "\nホーム: " $6 "\nシェル: " $7 "\n"}'
...しかし、今の古いコマンドを覚えておくべき時です。すべてがawk
orで練習されるわけではありませんperl
。
フィンガー-l -kエリック
一部のオペレーティングシステムにはこのオプションがない場合があります-k
。 (あなたが興味を表明していないいくつかの情報は除外されます。)しかし、これは-l
かなり一般的です。
追加読書
答え2
この質問を見てください。
awk -F: '{if ($3 >= 1000) {print "Username: " $1 "\nPassword: " $2 "\nUid: " $3 "\nGid: " $4 "\nComment: " $5 "\nHome: " $6 "\nShell: " $7 "\n---"}} /etc/passwd