トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

UNIX管理実習(2003-11-29)

シェルスクリプト

 演習

  1. カレントディレクトリに1001から1065までのディレクトリを作るシェルスクリプトを作る
  2. 新規登録ユーザのユーザ名it021001からit021055がテキストファイルuserlist.txtに入っている。これを利用してユーザ登録するシェルスクリプトを作る

 解説

カレントディレクトリに1001 から1065 までのディレクトリを作るシェ ルスクリプトを作る

  1. mkdir ディレクトリを作る
  2. これを65回実行する→65回のループ
    • bashでのループの方法をマニュアルから調べる(man bash)

ループはfor文を使い、次の書式で表現する。

for((expr1;expr2;expr3));do list;done
expr1 ループカウンターの初期化
expr2 ループ継続条件
expr3 ループカウンターの増減
list 実行するコマンドなど
for((A=1001;A<=1065;A++));do mkdir $A;done

新規登録ユーザのユーザ名(it021001〜it021055)がテキストファイルuserlist.txtに入っている。これを利用してユーザ登録するシェルスクリプトを作る

userlist.txtの構造(各行)

  • ユーザ名、フルネーム、パスワード(それぞれはスペースで区切られている)
  • ユーザはすべてusersグループに所属させる。

実現するには

  1. useraddコマンドを非対話的に利用する方法を確認する。
  2. userlist.txtからデータを取り出し、ユーザ登録する方法を考える。

ユーザ登録にはuseraddコマンドを次のように使う。

useradd -g users -c "XXXX YYY" -p xxxx ユーザ名

userlist.txtから1行ずつデータを読み取り、上記フルネーム、パスワード、ユーザ名の部分に該当するデータを当てはめられればよい。これを実現するにはawkを使う。

awk '{print "useradd -g users -c \"", $2,$3 "\" -p", $4,$1}' userdata.txt > uadd.sh

uadd.shを実行する。

sh ./uadd.sh

[UNIX管理実習]