vim /root/7.sh

#!/bin/bash

X=$[RANDOM%10+1]

read -p "[1-10]你猜:" cai

if [ $cai -eq $X ];then

echo 恭喜你猜对了

exit

elif [ $num -gt $X ];then

echo 猜大了

else

echo 太小了

fi

vim /root/6.sh

#!/bin/bash

read -p "请输入一个软件包:" b

b=$(rpm -qa | grep "$a")

if [[ -z $b ]];then

echo "没有安装"

else

echo "已经安装"

fi

vim /root/5.sh

#!/bin/bash

netstat -anptu | grep httpd &> /dev/null

if [ $? -eq 0 ];then

echo "已经启动"

else

echo "没有启动"

fi

vim /root/4.sh

#!/bin/bash

ping -c3 -i0.2 -w1 $1 &> /dev/null

if [ $? -eq 0 ];then

echo "host $1 up"

else

echo "host $1 down"

fi

vim /root/3.sh

#!/bin/bash

[ -d /mnt ] || mkdir /mnt

mount /dev/cdrom /mnt

vim /root/2.sh

#!/bin/bash

[ ! -d /mnt ] && mkdir /mnt

mount /dev/cdrom /mnt

vim /root/1.sh

#!/bin/bash

num=$(who | wc -l)

[ $num -gt 10 ] && mail -s errot root < mail.txt

crontab -e

*  *  *  *  * /root/1.sh

vim /mail.txt

隔壁老王来了

ping 176.130.8.50-150,开启的有多少个,没有开启的有多少个

#!/bin/bash

x=0

y=0

for i in {100..150}

do

ping -c2 -i0.1 -W1 176.130.8.$i &> /dev/null

if [ $? -eq 0 ];then

echo "176.130.8.$i is up"

let x++

else

echo "176.130.8.$i is down"

let y++

fi

done

echo  "开机的有$x个, 关机的有$y个"

求1+2+3+4+5......100的和

#!/bin/bash

sum=0

for i in {1..100}

do

let sum+=i

done

echo "总和$sum"

求1*2*3*4......30的积

#!/bin/bash

sum=1

for i in {1..50}

do

let sum\*=i

done

echo "总共是 $sum"

将/var/log每个文件,单独打包,保存到/tmp中

for i in `ls /var/log`

do

tar -czf /tmp/$i.tar.gz /var/log/$i

done

----------辅助理解/var/log/文件理解的打包过程

for i in a.txt b.txt c.txt d.txt

do

i=a.txt

tar -czf /tmp/$i.tar.gz /var/log/$i

done

利用Shell脚本,猜一个随机数

#!/bin/bash

y=0

num=$[RANDOM%100+1]

while :

do

read -p "[1-100] , 你猜一个数:" cai

let y++

if [ $cai -eq $num ];then

echo "恭喜猜对了, 你猜了$y次"

exit

elif [ $cai -gt $num ];then

echo "猜大了"

else

echo "猜小了"

fi

done

case语句

如果参数是redhat,则显示是fedora

如过参数是fedora,则显示是redhat

如果参数是其他,则显示是Useage

#!/bin/bash

case "$1" in

redhat)

echo "fedora";;

fedora)

echo "redhat";;

*)

echo "Usage";;

esac

case语句(判断语句),简化if语句-----------只能进行两个值之间是否相等

#!/bin/bash

case "$1" in

-n)

touch $2;;

-e)

vim $2;;

-c)

cat $2;;

-r)

rm -rf $2;;

*)

echo "Usage:$0 (-n|-e|-c|-r|)" 文件名

esac

Shell调用函数----------就是给一段命令取个别名(函数)

基本格式:函数名 (){

大括号中间跟命令

}

调用函数:函数名

ll(ls -l)

#!/bin/bash

cecho (){

echo -e "\033[$1m$2\033[0m"

}

cecho  32 OK

cecho  34 Error

cecho  35 Waring

3X:是字体颜色

4X:是背景颜色

X:表示样式

While语句

固定格式:while

i=1

while [ $i -lt 10 ]

do

echo "你好"

let i++

done

break,contine,exit给脚本的间接中断在重复使用

(1)break中断整个循环体

(2)continue中断本次循环,立即跳入下一次循环

(3)exit中断整个脚本

#!/bin/bash

for i in {1..5}

do

[ $i -eq 3 ] && break

echo $i

done

echo OK

#!/bin/bash

for i in {1..5}

do

[ $i -eq 3 ] && continue

echo $i

done

echo OK

#!/bin/bash

for i in {1..5}

do

[ $i -eq 3 ] && exit

echo $i

done

echo OK

#!/bin/bash

sum=0

while :

do

read -p "请输入数字[0结束]:" xx

[ $xx -eq 0 ] && break

let  sum+=xx

done

echo "总和是$sum"

打印9*9乘法表

#!/bin/bash

for i in `seq 9`

do

for x in `seq $i`

do

echo -n "$i*$x=$[$i*$x]"

done

echo

done

猴子摘香蕉

#!/bin/bash

x=1

for i in {1..8}

do

let x=x+1

let x=x*2

done

echo $x

国际象棋

#!/bin/bash

b=1

while [ $b -le 4 ]

do

for i in {1..4}

do

echo -en "\033[40m  \033[0m"

echo -en "\033[47m  \033[0m"

done

echo

for i in {1..4}

do

echo -en "\033[47m  \033[0m"

echo -en "\033[40m  \033[0m"

done

echo

if [ $b -eq 2 ];then

echo -e "\033[47m  楚河汉界   \033[0m"

fi

let b++

done

#!/bin/bash

read -p "请输入用户名:" name

read -p "请输入用户密码:" pass

if [ -z "$name" ];then

echo "必须输入用户名"

exit

fi

pass=${pass:-123456}

useradd $name

echo "$pass" | passwd --stdin $name

提示用户输入一个数:如果输入的是10,则脚本1+2+3+4.....10

如果输入的是20,则脚本1+2+3....+20

如过没有输入,则脚本1+2+3+4......+100

#!/bin/bash

read -p "请输入一个数字:" xx

xx=${xx:-100}

sum=0

for i in `seq $xx`

do

let sum+=i

done

echo "总和是$sum"

创建文件touch {a,b,c,d}.txt,把 .txt后缀改为 .doc

#!/bin/bash

for i in `ls *.txt`

do

mv $i ${i%.txt}.txt

done

改变参数,赋予变量

#!/bin/bash

for i in `ls *.$1`

do

mv $i ${i%.$1}.$2

done

#!/bin/bash

sum=0

for i in `seq 2 2 100`

do

let sum=sum+i

done

echo "$sum"

sum=0

for i in `seq 1 2 99`

do

let sum+=i

done

echo "总和是$sum"

#tmp=0

read -p "shu zi" num

num=${num:-100}

for i in `seq 2 2 $num`

do

let tmp+=i

done

echo $tmp

#!/bin/bash

case $1 in

start)

if [ -f /usr/local/nginx/logs/nginx.pid ];then

echo "正在运行"

else

/usr/local/nginx/sbin/nginx

echo "启动成功"

fi;;

stop)

if [ ! -f /usr/local/nginx/logs/nginx.pid ];then

echo "已经关闭"

else

/usr/local/nginx/sbin/nginx -s stop

echo "关闭成功"

fi;;

restart)

if [ -f /usr/local/nginx/logs/nginx.pid ];then

/usr/local/nginx/sbin/nginx -s stop

/usr/local/nginx/sbin/nginx

echo "重启成功"

else

/usr/local/nginx/sbin/nginx

echo "重启成功"

fi;;

status)

if [ -f /usr/local/nginx/logs/nginx.pid ];then

netstat -ntulp |grep nginx

else

echo "没有运行"

fi;;

*)

echo "Error";;

esac

本文转自hj_1314wgn 51CTO博客,原文链接:http://blog.51cto.com/13513556/2051525,如需转载请自行联系原作者

SHELL简单脚本编写相关推荐

  1. Linux shell:脚本编写快速入门

    文章目录 1.Sha-Bang 2."变量" 2.1 变量 2.2 运算 2.3 字符串 2.4 数组 3.流程控制 3.1 if 判断 3.2 case 分支 3.3 for 循 ...

  2. Linux——简单脚本编写及应用

    目录 一.脚本: 二.编写一个简单的脚本: (1)需求: (2)配置编写: 三.优化: (1)需求: (2)变量赋值: (3)配置编写: 一.脚本: 是使用一种特定的描述性语言,依据一定的格式编写的可 ...

  3. kafka安装、配置、启动、常用命令及shell启动脚本编写

    config  :kafka配置文件所在目录 server.properties    主要配置文件 zookeeper.properties   kafka内置了zk,一般要将其替换掉 以下关于生产 ...

  4. SHELL的脚本编写(2)

    目录 1.编写脚本for1.sh,使用for循环创建20账户,账户名前缀由用户从键盘输入,账户初始密码由用户输入,例如:test1.test2.test3........test10 首先创建并编写f ...

  5. ubuntu 可执行简单脚本编写

    目的 实现一系列自动化的操作 如文件处理.批量跑模型等,不用蹲着屏幕前 步骤 新建sh文件 touch demo.sh 编辑文件 vi demp.sh 写内容 vi的操作不提了 #!/bin/bash ...

  6. Linux编写脚本查看mod,Linux shell脚本编写基础

    在进行linux测试时编写脚本是必不可少的,Shell脚本的名称可以随便定义,也不要什么后缀名,例如可以写abc,smartzip这类名称,运行时只要键入 ./smartzip就能运行脚本了.. 每行 ...

  7. 【CyberSecurityLearning 34】Linux脚本编写(Shell脚本)

    目录 脚本 一个简单的脚本 实现流程: 变量赋值 IF判断语句 if单分支结构 if 双分支结构 if 多分支结构 实用案例:检测内网主机存活状态 Shell循环语句(for.while) for循环 ...

  8. shell 脚本编写 if else then

    shell 脚本编写 if else then if ....; then .... elif ....; then .... else .... fi 大多数情况下,可以使用测试命令来对条件进行测试 ...

  9. 4-1:shell编程之编写第一个shell脚本

    文章目录 一:什么是shell脚本 二:如何编写shell脚本 (1)脚本文件的格式 (2)可执行权限 (3)执行脚本 三:第一个shell脚本 (1)基本结构 (2)变量和常量 A:创建变量和常量 ...

最新文章

  1. spring boot 批量更新数据
  2. 编码方式_机器学习中常用的编码方式
  3. centos 7.6安装java_安装 QRadar Community Edition
  4. 用了这么多年的泛型,你对它到底有多了解?
  5. 前端学习(3343):ant design中导航使用
  6. Java学习笔记5-2——多线程
  7. JavaScript-jQuery事件
  8. 【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach Train+Test as RNN
  9. POJ3435 Sudoku Checker【谜题+数独】
  10. 机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
  11. 单片机开发系列(一)之Keil 5 安装使用教程
  12. Android 微信高性能日志存储库Xlog的使用
  13. HDUOJ 6441 Find Integer
  14. 【算法竞赛模板】二分图(染色法、匈牙利法)
  15. 【调研】国内芯片公司对于存算一体芯片的相关调研
  16. android+第三发输入法控制,android输入法属性使用,软键盘隐藏、显示状态控制大揭秘...
  17. mysql查附近500米商户_mysql查询附近门店
  18. linux系统ip访问53端口,linux – 使用公共IP地址无法访问本地端口
  19. web前端开发七武器—Jasmine入门教程(上)
  20. 二套模板的小说网站源码 带采集功能

热门文章

  1. html中for标记,C#使用for循环移除HTML标记
  2. python小学_小学生学python(二)
  3. serverlet 区别_Servlet中/和/*的区别
  4. linux 卸载模块命令,Linux中module模块的编译、加载、卸载
  5. html语言div什么意思,css中div是什么意思?
  6. 鸿蒙os内测版应用名称,鸿蒙OS2.0发布,只有两款机型可以申请内测
  7. 计算机课做ppt的软件有哪些内容,课程内容计算机软件的基础知识.ppt
  8. gcc 复杂结构体 初始化_gcc编译选项
  9. 固态器件理论(5)PN结
  10. Verilog: How to avoid 'Redeclaration of ansi port'