練習1
1, 設定變量FILE的值爲/etc/passwd
2 ,依次向/etc/passwd 中的每一個用戶問好,並顯示對方的shell,形如:Hello,root.your shell:/bin/bash
3,統計一共有多少用戶
[root@localhost mscripts]# cat lx14.sh
#!/bin/bash
FILE=/etc/passwd
LINES=wc -l /etc/passwd | cut -d" " -f1
for I in seq 1 $LINES
; do
echo "Hello, head -n $I /$FILE |tail -1 |cut -d: -f1
.your shell is head -n $I /$FILE | tail -1 |cut -d: -f7
"
done
echo "total $LINES users."
練習2
添加10個用戶user1到user10 ,密碼同用戶名;但要求只有用戶不存在的狀況下才能添加
[root@localhost mscripts]# cat lx15.sh
#!/bin/bash
for I in seq 1 10
; do
if ! id user$I &> /dev/null; then
useradd user$I && echo "user$I" | passwd --stdin user$I &> /dev/null
echo "user$I have finshed."
fi
done
擴展:
接受一個參數; add 添加用戶user1...user10
del 刪除用戶user1...user10
其餘 退出
[root@localhost mscripts]# cat lx16.sh
#!/bin/bash
for I in seq 1 10
; do
if [ $1 = add ]; then
if id user$I &> /dev/null
; then
echo "user$I exist."
else
useradd user$I
echo "user$I" | passwd --stdin user$I &> /dev/null
echo "user$I have been fished."
fi
elif [ $1 = del ]; then
userdel -r user$I > /dev/null
echo "user$I have been deleted."
else
echo "quit..."
exit 9
fi
doneshell
練習 3
寫一個腳本,分別顯示當前系統上全部默認shell爲bash的用戶和默認shell爲/sbin/nologin的用戶,並統計各種shell下的用戶總數;顯示結果形如:BASH, 3USERS,they are: root, redhat , gentoo
NOLOGIN , 2 users, they are : bin ,ftp
[root@localhost mscripts]# cat lx17.sh
#!/bin/bash
NUMBASH=grep "bash$" /etc/passwd | wc -l
NULOGIN=grep "nologin$" /etc/passwd | wc -l
BASHUSERS=grep "bash$" /etc/passwd | cut -d: -f1
LOGINUSERS=grep "nologin$" /etc/passwd | cut -d: -f1
BASHUSERS=echo $BASHUSERS | sed 's@[[:space:]]@,@g'
LOGINUSERS=echo $LOGINUSERS | sed 's@[[:space:]]@,@g'
echo "BASH, $NUMBASH users, they are:"
echo "$BASHUSERS"
echo "NOLOGIN, $NULOGIN users, they are:"
echo "$LOGINUSERS"bash
練習 4
寫一個腳本計算100之內全部奇數的和和全部偶數的和;
[root@localhost mscripts]# cat lx18.sh
#!/bin/bash
declare -i ODD=0
declare -i EVEN=0
for I in seq 1 100
; do
if [ echo "$I%2" | bc
-eq 0 ]; then
EVEN+=$I
else
ODD+=$I
fi
done
echo -e "ODD:$ODD.\nEVEN:$EVEN."ide
練習5
寫一個腳本計算100之內能被3整除的全部整數的和;
[root@localhost mscripts]# cat lx19.sh
#!/bin/bash
declare -i WE=0
for I in seq 1 100
; do
if [ echo $I%3 | bc
-eq 0 ]; then
WE=$[$I+$WE]
fi
done
echo "$WE"ui