天天看點

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

  如果有,就顯示其中一個的使用者名,否則,就顯示沒有這類使用者

  USERS = `grep "\<bash$" /etc/passwd | head -1 | cut -d: -f1`

  echo "$USERS is one of such users"

給定一個檔案,比如/etc/inittab

判斷這個檔案中是否有空白行

如果有,則顯示其空白行數,否則,顯示沒有空白行

FILE = /etc/inittab

if grep "^$" $FILE &> /dev/null;then

  echo "Total blank lines: `grep "^$" $FILE | wc -l`."

else 

  echo "No blank line."

給定一個使用者,判斷其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"

  echo "bad guy"

進一步要求:不使用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`

本文轉自飛行萌51CTO部落格,原文連結:http://blog.51cto.com/8527508/1941156 ,如需轉載請自行聯系原作者