そこで、/ etc / passwdから入力を受け取り、bash、nolongin、csh、およびkshを使用しているユーザー数を出力する、bashスクリプトのwhileループ関数を作成しようとしています。私は猫とカットを使うことになっていると思います。そして私は、ユーザーが使用するシェルのタイプが7番目のフィールドにあることを知っています。
シェルの種類ごとに変数を作成し、その特定のシェルを使用するユーザーが見つかるたびに変数を増やす必要があると考えるのは正しいですか。
これまでのところ、これは私が持っているコードですが、何らかの理由でそれは最後のifステートメントを出力するだけです..
declare -i bash;
declare -i nologin;
declare -i csh;
declare -i ksh;
bash=0;
nologin=0;
csh=0;
ksh=0;
cat /etc/passwd | cut -d: -f7 $line | while read line;
do
if [ $line == "bash" ]
then
bash=bash+1;
else fi [ $line == "/sbin/nologin" ]
then
nologin=nologin+1;
else fi [ $line == "chs" ]
then
chs=chs+1;
else
then
ksh=ksh+1;
fi
done
更新:これまでのところ、私はコードを変更し、持っているものを更新しました。それはループしてif文の正しい部分を出力しますが、私は自分の持っている変数をインクリメントしようとしています
if
-then
-else
ブロック(も見てcase
そしてそれがあなたにとってより理にかなっているかどうかについて考えてください)。シェル変数を使った算術演算の方法も調べてください。そしてcut(1)を読んで、コマンドラインでデータを処理する方法を確認してください。そしてもしあなたが道を見つけたら、私に知らせてください。私は何も知らないからです(ヒントヒント)。最後に、について学ぶ UUoC 。