1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;
在線的主機使用綠色顯示;
不在線的主使用紅色顯示;
#!/bin/bash
trap ‘mytrap’ INT
mytrap() {
echo “quit”
exit 1
}
for i in {1..254};do
if ping -W 1 -c 1
172.16.150.$i&>/dev/null;then
echo -e
“\033[32m172.16.250.$i\033[0m”
else
echo -e
“\033[31m172.16.250.$i\033[0m”
fi
done
2、如何給網絡接口配置多個地址,有哪些方式?
ifconfig NETWORK_NAME:# IPADDR/MASK
例如:ifconfig eno16777736:0 192.168.1.6/24
ip addr add NETWORK/MASK dev NETWORK_NAME label NETWORK_NAME:0
例如:ip addr add 192.168.1.7/24 dev eno16777736 label eno16777736:0
3、寫一個腳本,完成以下功能
(1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
(2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串;
(3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串;
(4) 分別統計S開頭和K開頭的文件各有多少;
#!/bin/sh
declare -a start
declare -a stop
for i in /etc/rc.d/rc3.d/S*;do
echo “${i} start”
start[${#start[*]}]=$i
done
for l in /etc/rc.d/rc3.d/K*;do
echo “${l} stop”
stop[${#stop[*]}]=$l
done
echo “^S have
${#start[*]}”
echo “^K have
${#stop[*]}”
or
#!/bin/sh
declare -a mysz
mysz() {
for i in /etc/rc.d/rc3.d/${1}*;do
echo “${i} $2”
done
echo “^${1} files have `ls /etc/rc.d/rc3.d/${1}*| wc -w`”
}
mysz S start
mysz K stop
4、寫一個腳本,完成以下功能
(1) 腳本能接受用戶名作為參數;
(2) 計算此些用戶的ID之和;
#!/bin/sh
b=0
for i in $*;do
if id -u $i
&>/dev/null;then
echo “$i ID is `id
-u $i`”
a=`id -u $i`
let b+=$a
else
echo “$i not found
!!”
exit 1
fi
done
echo “all users ID is $b”
5、寫一個腳本
(1) 傳遞一些目錄給此腳本;
(2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;
(3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
#!/bin/sh
sumf=0
sumd=0
trap
‘echo -en “dir $sumd\n”;echo -en “file $sumf\n”;exit 1’ INT
f_type()
{local f
local
file_pathif [ -d
$1 ];thenfor f in `ls $1`;do
file_path=${1}/$f
[ -d $file_path ]&&let
sumd++&&f_type $file_path[ -f $file_path ]&&let sumf++
file $file_path
done
else
echo “not dir!!”
continue
fi
}
for i
in `seq 1 $#`;dof_type $1
done
echo
“dir $sumd”echo
“file $sunf”
6、寫一個腳本
通過命令行傳遞一個參數給腳本,參數為用戶名
如果用戶的id號大于等于500,則顯示此用戶為普通用戶;
#!/bin/sh
aa() {
echo “no user!!”
exit 1
}
id $1&>/dev/null || aa
if [ `id -u $1` -ge 500 ];then
echo “$i is a Ordinary
user!!”
fi
7、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;
#!/bin/sh
mytrap() {
echo “quit”
exit 1
}
trap ‘mytrap’ INT
for i in {20..100};do
if ping -W 1 -c 1 172.16.250.$i
&>/dev/null;then
echo
“172.16.250.$i”
fi
done
8、打印九九乘法表;
#!/bin/sh
for ((i=1;i<=9;i++));do
for ((a=1;a<=$i;a++));do
echo -n -e
“${a}x${i}=$[${a}*${i}]\t”
done
echo
done
or
#!/bin/sh
a=1
while [ $a -le 9 ];do
for i in `seq 1 $a`;do
let b++
echo -en
“${i}x${a}=$[${i}*${a}]\t”
done
let a++
echo
done
~
原創文章,作者:N25_韓奇洋,如若轉載,請注明出處:http://www.www58058.com/70092
腳本功能都已經實現了,但是沒有經過著色的代碼看起來著實很痛苦,內容固然重要,但也要同時注意可讀性。