5.4shell編程3

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`


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章