shell基礎練習題


1、判斷/etc/inittab文件是否大於100行,如果大於,則顯示”/etc/inittab is a big file.”否者顯示”/etc/inittab is a small file.”

#!/bin/bash
#判斷文件行數是否大於100行
if [ `wc -l /etc/inittab | awk '{print $1}'` -gt 100 ];then
  echo "/etc/inittab is a big file."
else
  echo "/etc/inittab is a samll file."
fi

2、給定一個用戶,來判斷這個用戶是什么用戶,如果是管理員用戶,則顯示“該用戶為管理員”,否則顯示“該用戶為普通用戶”

#!/bin/bash
#判斷用戶類型`
a=`id -u $1` 
if [ $a -eq 0 ];then
  echo "這是管理員用戶"
else
  echo "普通用戶"
fi

3、判斷某個文件是否存在

#!/bin/bash
#判斷文件是否存在
if [ -e $1 ];then
  echo "存在"
exit 0
else
  echo "不存在"
fi

4、判斷當前系統上是否有用戶的默認shell程序是否為bash程序,如果有,就顯示有多個這類用戶,否則就顯示沒有這類用戶;【並且顯示出那些用戶是bash】

方法一:

#!/bin/bash
#判斷用戶默認shell程序類型
a=`grep "/bin/bash" /etc/passwd | wc -l`
if [ $a -gt 0 ] ;then
  echo "存在bash用戶有 $a 個"
else
  echo "不存在"
fi

方法二:

#!/bin/bash
#判斷用戶的默認shell程序類型
declare -i sum=`grep "/bin/bash" /etc/passwd | wc -l`
if grep "/bin/bash" /etc/passwd &> /dev/null;then
  echo "存在 $sum 個用戶,shell程序為/bin/bash"
  grep "/bin/bash" /etc/passwd | cut -d: -f1
  exit 0
else 
  echo "沒有這類用戶"
exit 1
fi

 5,輸入一個設備文件,輸出這個設備文件的基本信息:

#!/bin/bash
#查看設備文件信息
read -t 10 -p "輸入一個設備文件名:" devname
[ -z $devname ] && devname=`fdisk -l` && exit 1
if [ -b /dev/$devname ];then
    fdisk -l /dev/$devname
    exit 0
else
    echo "$devname 不是設備文件"
    echo "Usage:請輸入一個設備文件,如 sda"
    exit 2
fi

6,shell編寫99乘法表

#!/bin/bash
#99乘法表
for i in `seq 9`;do
    for j in `seq 9`;do
    [ $j -le $i ] && echo -n -e "$i*$j=`echo $(($i*$j))`\t"
done
    echo " "
done

7,統計netstat -tan類型

declare -i L=0
declare -i E=0
declare -i o=0

for i in $(netstat -tan | grep "^tcp" | awk '{print $6}');do
      if [ $i = LISTEN ];then
        let L++
      elif [ $i = ESTALISHED ];then
        let E++
      else
        let o++
fi
done
echo "堅挺的鏈接有: $L"
echo "其他鏈接有: $o"
echo "家里鏈接有: $E"

8,計算1-100內偶數的和

#!/bin/bash
#1-100內偶數的和
declare -i sum=0
    for i in $(seq 0 2 100);do
      let sum+=$i
done
echo "和 $sum"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM