5.4
練習:寫一個腳本
判斷當前系統上是否有用戶的默認shell爲bash;
如果有,就顯示有多少個這類用戶,否則,就顯示沒有這類用戶
nano dd.sh
#!/bin/bash
#
grep "\<bash$" /etc/passwd &> /dev/null
RETVAL = $?
if [ $RETVAL -eq 0 ];then
USERS = `grep "\<bash$" /etc/passwd | wc -l`
echo "The shells of $USERS users is bash."
else
echo "No such user."
fi
練習:寫一個腳本
判斷當前系統上是否有用戶的默認shell爲bash
如果有,就顯示其中一個的用戶名,否則,就顯示沒有這類用戶
nano dd.sh
#!/bin/bash
#
grep "\<bash$" /etc/passwd &> /dev/null
RETVAL = $?
if [ $RETVAL -eq 0 ];then
USERS = `grep "\<bash$" /etc/passwd | head -1 | cut -d: -f1`
echo "$USERS is one of such users"
else
echo "No such user."
fi
練習:寫一個腳本
給定一個文件,比如/etc/inittab
判斷這個文件中是否有空白行
如果有,則顯示其空白行數,否則,顯示沒有空白行
#!/bin/bash
FILE = /etc/inittab
if grep "^$" $FILE &> /dev/null;then
echo "Total blank lines: `grep "^$" $FILE | wc -l`."
else
echo "No blank line."
fi
練習:寫一個腳本
給定一個用戶,判斷其UID和GID是否一樣
如果一樣,就顯示此用戶爲"good guy";否則,就顯示此用戶爲"bad guy"
#! /bin/bash
USERNAME =user1
USERID = `id -u $USERNAME`
GROUPID =`id -g $USERNAME`
if[ $USERID -eq $GROUPID ];then
echo "good guy"
else
echo "bad guy"
fi
進一步要求:不使用id命令獲得其id號
練習:編寫一個腳本
給定一個用戶,獲取其密碼警告期限:
而後判斷用戶最近一次修改密碼時間距今天是否已經小於警告期限
提示:算術運算的方法$[$A-$B]:表示變量A的值減去變量B的值的結果
如果小於,則顯示"Warning":否則,就顯示"OK"
練習:寫一個腳本
判讀命令歷史中歷史命令的總條目是否大於1000;如果大於,則顯示
"Some command will gone.";否則顯示"ok"
shell中如何進行算術運算:
A = 3
B = 6
1 let 算術運算表達式
let C = $A + $B
2 $[算術運算表達式]
c = $[$A + $B]
3 $((算術運算表達式))
c = $(($A + $B))
4 expr命令運算表達式,表達式中各操作數及運算符之間要有空格,而且要
使用命令引用
c = `expr $A + $B`