シェルスクリプト
演習
- カレントディレクトリに1001から1065までのディレクトリを作るシェルスクリプトを作る
- 新規登録ユーザのユーザ名it021001からit021055がテキストファイルuserlist.txtに入っている。これを利用してユーザ登録するシェルスクリプトを作る
解説
カレントディレクトリに1001 から1065 までのディレクトリを作るシェ ルスクリプトを作る
- mkdir ディレクトリを作る
- これを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グループに所属させる。
実現するには
- useraddコマンドを非対話的に利用する方法を確認する。
- 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管理実習]