设为首页 收藏本站
查看: 642|回复: 0

自己敲过的一些简单shell脚本

[复制链接]

尚未签到

发表于 2018-8-21 06:02:12 | 显示全部楼层 |阅读模式
  敲过的一些简单脚本,把他们贴上来偶尔看看,过不了多久应该就会觉得非常小儿科吧,不过应该会对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$i  neng 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 3  192.168.4.254 &> /dev/null
  //ping -c2 -i0.2 W1  192.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 $i  ci"
  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即可。
  //[root@server0 ~]// a=1
  //[root@server0 ~]// b=2
  //[root@server0 ~]// c=3
  //[root@server0 ~]// c=$b
  //[root@server0 ~]// b=$a
  //[root@server0 ~]// a=$c
  //[root@server0 ~]// echo $a
  //2
  //[root@server0 ~]// 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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-554379-1-1.html 上篇帖子: 学习之路(四)浅谈:shell弱类型编程语言;sed命令用法及练习 下篇帖子: 10个实战及面试常用的shell脚本--1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表