Shell语言是学习Linux的基础。跟我来吧,13个经典的例子带你快速入坑。
01|cut应用-判断登陆用户是否是root
#!/bin/bash
test=$(env |grep USER| cut -d "=" -f 2)
if [ $test == "root" ]
then
echo $test
fi
02|awk应用-判断分区使用率
#!/bin/bash
test=$(df -h |grep sda5 | awk ''|cut -d '%' -f 1)
if [ "$test" -ge "80" ]
then
echo "exceed"
else
echo "ok"
fi
03|if双分支应用-判断apche服务是否启动
test=$(ps aux|grep httpd|grep -v grep)
#截取apche命令 赋予test
if [ -n "$test" ]
then
echo "apache is ok"
else
echo "apache is not ok"
/etc/rc.d/init.d/httpd start
fi
4|if多分支应用-计算器做加减运算
#!/bin/bash
read -p 'plase enter num1:' -t 30 num1
read -p 'please enter num2:' -t 30 num2
read -p 'please enter opt:' -t 30 opt
if [ -n $num1 -a -n $num2 ]
then
test1=$(echo $num1|sed 's/[0-9]//g')
test2=$(echo $num2|sed 's/[0-9]//g')
#test1和test2都会空代表输入的都是数字
if [ -z $test1 -a -z $test2 ]
then
if [ $opt == '+' ]
then
sum=$(($num1+$num2))
elif [ $opt == '-' ]
then
sum=$(($num1-$num2))
elif [ $opt == '*' ]
then
sum=$(($num1*$num2))
elif [ $opt == '/' ]
then
sum=$(($num1/$num2))
else
echo 'qing shuru valid opt'
fi
else
echo 'qing shuru num1 and num2'
fi
else
echo 'please enter something'
fi
echo $sum
05|文件判断-用户输入的是什么文件
#!/bin/bash
read -p 'please enter a file path:' -t 30 file
if [ -z $file ]
then
echo '不能输入空值!'
elif [ ! -e $file ]
then
echo '请输入正确的文件名!'
exit 11
elif [ -d $file ]
then
echo '这是一个目录。'
exit 12
elif [ -f $file ]
then
echo '这是一个文件。'
exit 12
else
echo '$file 是其他文件'
fi
06|case语句应用
#!/bin/bash
read -p '请输入1进行选择' -t 30
read -p '请输入2进行选择' -t 30
read -p '请输入3进行选择' -t 30
read -p '进入选择面板!请输入数字进行选择:' -t 30 num
case $num in
"1")
echo "你选择了1号"
;;
"2")
echo "你选择了2号"
;;
"3")
echo "你选择了3号"
;;
*)
echo "输入的数字不正确"
;;
esac
07|for语句应用循环打印数字
#!/bin/bash
for i in "$*"
do
echo $i
done
08|for语句应用求和
#!/bin/bash
s=0
for ((i=1 ;i
do
s=(($s+$i))
done
echo $s
09|for语句应用批量增加用户
#!/bin/bash
read -p 'enter username:' -t 30 name
read -p 'enter passwd:' -t 30 passwd
read -p 'enter nums for user:' -t 30 num
if [ -n name -a -n passwd ]
then
if [ -z $(echo "$num"|sed 's/[0-9]//g') ]
then
for (( i=1;i
do
/usr/sbin/useradd $name$i >/dev/null
echo $passwd |/usr/bin/passwd --stdin $name$i >/dev/null
done
else
echo 'num must be a number!!'
fi
else
echo 'name and passwd must not be null!!'
fi
10|for语句应用 批量删除用户
#!/bin/bash
for i in $(cat /etc/passwd|grep swd|cut -d ':' -f 1)
do
/usr/sbin/userdel $i
echo 'del user~~~~'$i
done
11|while语句应用-求和
#!/bin/bash
i=1
s=0
while [ $i -le 100 ]
do
s=$(( $s+$i ))
i=$(( $i+1 ))
done
echo 'the sum is '$s
12|until语句应-求和
#!/bin/bash
i=1
s=0
until [ $i -gt 100 ]
do
s=$(( $s+$i ))
i=$(( $i+1 ))
done
echo 'the sum is '$s
13|获取linux的网络配置信息/系统内存/系统负载/磁盘容量
#!/bin/bash
if [[ $# -eq 0 ]]
then
reset_terminal=$(tput sgr0)
echo $reset_terminal
ostype=$(uname -o)
osname=$(cat /etc/issue)
machine=$(uname -m)
releaseversion=$(uname -r)
internalip=$(hostname -I)
externalip=$(curl -s
http://ipecho.net/plain)
dnsserversname=$(cat /etc/resolv.conf |grep '^nameserver'|awk '')
echo "optype--"$ostype
echo "osname--"$osname
echo "machine--"$machine
echo "releaseversion--"$releaseversion
echo "internalip--"$internalip
echo "externalip--"$externalip
echo "dnsservers--"$dnsserversname
#loggin user
who>/tmp/who
rm -rf /tmp/who
fi
后记:
这些都是考试必考的。嗯。背下来。
汇总一下下:
01|cut应用-判断登陆用户是否是root
02|awk应用-判断分区使用率
03|if双分支应用-判断apche服务是否启动
04|if多分支应用-计算器做加减运算
05|文件判断-用户输入的是什么文件
06|case语句应用
07|for语句应用循环打印数字
08|for语句应用求和
09|for语句应用批量增加用户
10|for语句应用 批量删除用户
11|while语句应用-求和
12|until语句应-求和
13|获取linux的网络配置信息/系统内存/系统负载/磁盘容量
——END——
关于程序媛的点滴,技术/职场/生活。
欢迎来稿~
领取专属 10元无门槛券
私享最新 技术干货