shell練習題講解

寫一個腳本,計算100之內全部的奇數的和以及全部偶數的和,分別顯示出來
#! /bin/bash
sum1=0
for i in `seq 1 2 100`
do
sum1=$[$sum1+$i]
done
echo $sum1apache

sum2=0
for j in `seq 2 2 100`
do
sum2=$[$sum2+$j]
done
echo $sum2bash


寫一個腳本,利用RANDOM生成10個隨機數,而且找出最大值和最小值加密

for i in `seq 1 10`
do
n[$i]=$RANDOM
echo ${n[$i]} >> tmp.txt
done
a=`sort -n tmp.txt|head -n1`
b=`sort -n tmp.txt|tail -n1`
echo "a="$a
echo "b="$bspa


======
if [ -z $hdir ] 判斷是否爲空
if [ -n $hdir ] 判斷是否不爲空
======
寫一個腳本,檢查普通用戶的家目錄是否存在,好比apache用戶存在,輸出exit
,若是不存在,輸出not existinput


read -p "please input a user name;" username
hdir1=`awk -F: '$1=="'$username'"' /etc/passwd`
if [ -z $hdir1 ]
then
echo "the user you input is not exist"
exit
fi
hdir=`echo $hdir1| awk -F: '{print $6}'`
if [ -z $hdir ]
then
echo "the user you input is not exist"
exit
fi
if [ -z $hdir ]
then
echo "$username's homedir is $hdir and exist"
else
echo "$username's homedir is $hdirnot exist"
fiit


寫一個腳本,完成如下任務
1,添加5個用戶,usr1,,,,user5
2,每一個用戶的密碼同用戶名,並且要求,添加密碼完成後不顯示passwd命令執行結果信息
3,每一個用戶添加完成後,都要顯示用戶某某已經添加成功awk

for i in {1..5}
do
if ! grep -q "^user$i:" /etc/passwd
then
useradd usr"$i"
echo -e "user$i\nuser$i\n" |passwd user"$i" >/dev/null 2>&1
echo "add user done"
else
echo "the user user$i exist"
continue
fi
done隨機數

數字範圍加到 100-999
若是數值超過正負 50 會提示:太大,過小
若是數值在正負 50 之間會提示,很接近sed

m=$[$RANDOM%900+100]
while :
do
read -p "input a number:" n
#n1=$[$m+50]
#n2=$[$m-50]

if [ "$n" -gt "$m" ]
then
echo "bingger"
fi
if [ "$n" -lt "$m" ]
then
echo "smaller"
fi
if [ "$n" -eq "$m" ]
then
echo "right"
exit
fi
donegrep

寫一個腳本,計算100之內全部能被3整除的正整數的和
sum=0
for i in {1..100}
do
n=$[$i%3]
if [ "$n" -eq 0 ]
then
sum=$[$sum+$i]
fi
done
echo $sum

寫一個腳本,執行後,打印一行提示 「please input a number」,要求用戶輸入數值,而後打印出該數值,而後再次要求用戶輸入數值,知道用戶輸入 end 中止

while :
do
read -p "please input a number:" n
if [ "$n" == "end" ]
then
exit
fi
m=`echo $n|sed 's/[0-9]//g'`
if [ -n "$m" ] 不爲空
then
echo "it's not number,please input a number."
else
echo $n
fi
done

當根目錄所在硬盤的使用率大於85%時輸出警告信息

df |awk '$6=="/"'

df |awk '$6=="/" ' |awk -F '[%" "]+' '{print $5}'
awk支持多個分隔符,這裏是%和空格,+表示百分號空格能夠有多個

echo "a b%c%d e" |awk -F '[%" "]' '{print $3,$5}'

df |awk '$6=="/" ' |awk -F '[%" "]+' '{print $6}'

相關文章
相關標籤/搜索