自己敲过的一些简单shell脚本
敲过的一些简单脚本,把他们贴上来偶尔看看,过不了多久应该就会觉得非常小儿科吧,不过应该会对shell脚本的流程控制理解有些帮助。#!/bin/bash
//p=176.202.52.
////for i in $(seq 1 254)
//for((i=1;i /dev/null
//if [ $? -eq 0 ];then
//echo "$p$i neng ping tong "
//fi
//done
//i=1
//while :
//do
//echo "$i"
//let i++
//sleep 0.1
//done
p=176.202.52.
i=1
while [ $i -le 254 ]
do
ping -c1 -i0.1 -w1 $p$i&> /dev/null
if [ $? -eq 0 ];then
echo "$p$ineng ping tong "
fi
let i++
done
#!/bin/bash
//read -p "plese input a user:" a
//[ -z $a ] && echo "no user inputed" && exit
//stty -echo
//read -p "plese input password:" b
//stty echo
//echo ""
//[ -z $b ] && echo "no password inputed " && exit
//useradd $a &> /dev/null
//echo $b | passwd --stdin $a
//if [ -d /media/iso ]; then
//echo this dir is exsit
//else
//mkdir -p /media/iso
//echo "this dir has been created"
//fi
//ping -c 3192.168.4.254 &> /dev/null
//ping -c2 -i0.2 W1192.168.4.10 | head -2
//read -p "qing shu ru ip :" a
//ping -c3 -i0.2 W1 $a &> /dev/null
//if [ $(echo $?) -eq 0 ]; then
//if [ $? -eq 0 ];then
//echo"keyi ping tong $a"
//else
//echo"bukeyi ping tong $a"
//fi
//while :
num=$[ RANDOM%10+1 ]//随机数一旦产生就会固定,以为只执行了一次脚本,循环了多次而已,
//如果没有加for循环,再执行脚本来猜 随机数就会变化!!
//for i in {1..5}
i=0
while :
do
read -p "please input your number1-10:" cai
let i++
if [ $num -eq $cai ];then
echo "you are right !"
echo "you cai le $ici"
exit
elif [ $num -lt $cai ];then
echo "your number are big "
//echo "the currect number is $num"
else
echo "your number are small"
//echo "the currect number is $num"
fi
done
//read -p "plese input your score0-100:" num
//if [ $num -ge 90 ]; then
//echo "sheng gong gai si "
//elif [ $num -ge 80 ];then
//echo "deng feng zao ji "
//elif [ $num -ge 70 ];then
//echo "lu huo cun qing "
//elif [ $num -ge 60 ];then
//echo "lue you xiao cheng "
//else
//echo "hehe da"
//fi
//a=$(cat /etc/passwd | head -10 | tail -1 | cut -d: -f3 )
//echo $0
//echo $1
//shift
//echo $2
//echo $*
//echo $//
//
//i=1
//while :
//do
//echo "$i"
//let i++
//done
//
#!/bin/bash
//case的简单脚本应用!
//case $1 in
//redhat)
//echo "fedora";;
//fedora)
//echo "redhat";;
//*)
//echo "error";;
//esac
//
//case $1 in
//-l)
//ls -lh $2;;
//-u)
//useradd $2;;
//-c)
//cd $2;;
//-r)
//rm -rf $2;;
//*)
//echo "Usage $0 [-n|-e|-c|-r] file "
//esac
a=$(seq 9)
b=$(seq 9)
c=haha
for i in $
do
mycolor(){ echo -e "\033[3$a;4$bm$c\033[0m" ; }
mycolor $c
done
#!/bin/bash
//几种跳出或中断脚本 continue break exit。
for i in $(seq 9)
do
//b=$(seq 9)
mcolor(){
echo -e "\033[3$im$b\033[0m"
}
mcolor $b
done
//for i in {1..5}
//do
//[ $i -eq 3 ] && exit
//echo $i
//done
//echo"over"
#!/bin/bash
//死循环球和跳出方法。
sum=0
while :
do
read -p "please input number:" num
[ $num -eq 0 ] && break
let sum+=$num
done
echo $sum
#!/bin/bash
//批量根据提供文件创建用户并给密码。
//user=cat $1
//for i in $user
//do
// useradd $i
// echo 1 | passwd --stdin $i
//done
//几种造数方法。
//for ((i=1;i /dev/null
if [ $? -eq 0 ];then
echo "host $a$i is up"
else
echo "host $a$i is down"
fi
let i++
done
#!/bin/bash
x=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
//echo ${x:$[$RANDOM%62]:1 }
//echo ${x:$[$RANDOM%54]:8 }
//y=$[$RANDOM%62]
//echo "$x" | cut -b $y-$[$y]
a=1
c=
while :
do
b=$(echo ${x:$[$RANDOM%62]:1 })
c=$c$b
echo $b
let a++
[ $a -gt 8 ] && break
//let a++
done
echo "$c"
#!/bin/bash
//批量改扩展名。
//cd /root
//for i in $(ls .$1)
//do
//a=${i/$1/$2}
//b=${i%.}
//// mv $i $a
//mv $i {$b}$2
//// ${i% .*}
//
////done
//变量赋初始值。
//read -p "please input user name :" user
//[ -z $user ] && exit
//read -p "please imput user pass :" pass
//stty -echo
//pass=${pass:-123456}
//stty echo
//useradd $user
//echo "$pass" | passwd --stdin $user
//sum=0
//read -p "please imput sum number :" num
//num=${num:-100}
//for i in $(seq $num)
//do
//let sum+=i
//done
//echo "$sum"
//
//
//read -p "please imput a number:" x
//i=1
//sum=0
//x=${x:-100}
//while :
//do
//[ $i -gt $x ]&&break
//let sum+=i
//let i++
//done
//echo "$sum"
//
//数组的定义和使用
// expect 模拟人进行交互人首先是看,看到行末显示的是password(出现就行了!!不一定写这个)
//就输入密码Taren1然后是回车\n是模拟回车的意思。看到//就看到命令行 就可以输入要执行的命令。
//expect/dev/null
[ $? -eq 0 ] && echo "gcc openssl pcre 安装完成"|| echo "软件为能成功安装"
tar -zxf /root/share/nginx-1.10.3.tar.gz -C /root/share
cd /root/share/nginx-1.10.3
./configure&> /dev/null
[ $? -eq 0 ] && echo "配置完成" || echo "配置失败"
make &> /dev/null
[ $? -eq 0 ] && echo "编译完成" || echo "编译失败"
make install &> /dev/null
[ $? -eq 0 ] && echo "Nginx安装完成" || echo "安装失败"
b=$(netstat -ntulp |awk '/:80/{print $7}'|cut -d/ -f2)
c=/usr/local/nginx/sbin/nginx
netstat -ntulp |grep ":80" &> /dev/null
if [ $? -ne 0 ];then
$c
echo "nginx服务从关闭到启动"
elif [ $b == "httpd" ];then
systemctl stop $b
$c
echo "已关闭httpd并启动nginx服务"
else
$c -s stop
$c
echo "nginx服务重新启动成功"
fi
//!/bin/base
c=/usr/local/nginx/sbin/nginx
case $1 in
stop)
$c -s stop
echo "nginx服务已关闭";;
restart)
$c -s stop
$c
echo "nginx服务重启成功";;
status)
netstat -ntulp |grep nginx
[ $? -ne 0 ] && echo "nginx服务未开启";;
*)
echo "Useage stop restart status"
esac
#!/bin/bash
a=$(uptime |awk '{print$8,$9,$10}')
b=$(ifconfig eth0 | awk '/RX p/{print $5}')
c=$(ifconfig eth0 | awk '/TX p/{print $5}')
d=$(free |awk '/Mem/{print $NF}')
e=$(df | awk '/\/$/{print $4}')
f=$(cat /etc/passwd |wc -l)
g=$(who |wc -l)
h=$(rpm -qa |wc -l)
echo "cpu 前1,5,15分钟的负载分别为:$a"
echo "网卡的接收流量为:$b"
echo "网卡的接收流量为:$c"
echo "目前内存可用空间为:$d"
echo "根分区目前可用空间为$e"
echo "本机目前用户个数为:$f"
echo "本机当前登陆用户个数:$g"
echo "本机当前安装的软件包个数为:$h"
#!/bin/bash
a=$(awk '/Failed/ && $9!~/invalid/{print $11}' /var/log/secure |awk '{a[$1]++}END{for (i in a){print i,a}}'|awk '{if($2>5){print$1}}')
b=$(awk '/Failed/ && $9!~/invalid/{print $11}' /var/log/secure |awk '{a[$1]++}END{for (i in a){print i, a}}'|awk '{if($2>5){print$1}}' )
echo $a
echo $b
#!/bin/bash
jindu(){
while :
do
echo -n "//"
sleep 1
done
}
jindu &
cp -r $1 $2
kill $!
#!/bin/bash
read -p "please imput one number :" a
read -p "please imput two number :" b
read -p "please imput three number :" c
//if [ $a -gt $b ];then
//if [ $b -gt $c ];then
// echo $a$b$c
//else
// [ $a -gt $c ] && echo $a$c$b || echo$c$a$b
//fi
//else
//if [ $a -gt $c ];then
//echo $b$a$c
//else
// [ $b -gt $c ] && echo $b$c$a || echo$c$b$a
//fi
//fi
//三个数字还可以用if强行判断6次 数字多了不能强行这么判断!!!要用位置替换。
d=0
if [ $a -gt $b ];then
d=$a
a=$b
b=$d
fi
if [ $a -gt $c ];then
d=$a
a=$c
c=$d
fi
if [ $b -gt $c ];then
d=$b
b=$c
c=$d
fi
echo $a,$b,$c
//这两个方法有如下几个知识点
//① :if双分支套双分支,要理清楚里面的结构关系。 算法为三个数排序有6种排法
//② :1、变量即容器,要想两个变量的值互换,即想要两个容器里装的东西互换,必须要引入第三个容器。先把a的倒入c,a装入b,b再装c即可。
//// a=1
//// b=2
//// c=3
//// c=$b
//// b=$a
//// a=$c
//// echo $a
//2
//// echo $b
//1
// 如果没有引入的话,只有倒掉其中一个,而且是先倒那个容器的东西变了,后倒东西那个容器没变。那么,两个容器装的东西就肯定一样了。
//2、三个变量(容器)从小到大排序:只需要保证第一个容器装的值最小,第二个容器装的值第二小,第三个容器装的值最大即可。
//先确定第一个最小:a如果比b大了 b的值倒给a a装的值是ab中小的了。再来,a装的值和c装的值比,a比c大了把c装的倒给a 这时候a装的一定是最小的了。
//确定好了最小的了,剩下的两个再来比,b装的值大与c了 就把c的倒给b 让b装的值变成bc中装的值小的那个。最后容器永远摆放为abc 但是过程中要用到d容器。!!!
页:
[1]