Linux之部分shell脚本练习

#键盘键入两个整数,并计算它们之和
#!/bin/bash
#
#echo -n "Input two Intergers:"
read -t 5 -p "Input two Intergers[100 and 200]:" A B
[ -z $A ] && A=100
[ -z $B ] && B=200
echo "$A plus $B is:$[$A+$B]"

#归档文件的脚本
#!/bin/bash
#
read -p "Three files:" FILE1 FILE2 FILE3
read -p "Destination:" DEST
read -p "Compress[gzip|bzip2|xz]:" COMP

case $COMP in
gzip)
   tar -zcf ${DEST}.tar.gz $FILE1 $FILE2 $FILE3
   ;;
bzip2)
   tar -jcf ${DEST}.tar.bz2 $FILE1 $FILE2 $FILE3
   ;;
xz)
   tar -cf ${DEST}.tar $FILE1 $FILE2 $FILE3
   xz ${DEST}.tar
   ;;
*)
   echo "Unknown."
   exit 9
   ;;
esac

脚本编程:
   顺序结构
   选择结构
       if
       case
   循环结构
       for
       while
       until
while循环:试用于循环次数未知的场景
语法:
   while CONDITION; do
       statement
       ...
   done

#计算100以内和
#!/bin/bash
#
declare -i I=1
declare -i SUM=0

while [ $I -le 100 ]; do
   let SUM+=$I
   let I++
done

echo $SUM

#输入字符串,提示要修改成大写的,如果是quit,则退出。
#!/bin/bash
#
read -p "Input something:" STRING

while [ $STRING != ‘quit‘ ];do
   echo $STRING | tr ‘a-z‘ ‘A-Z‘
   read -p "Input something:" STRING
done

#查看用户hadoop是否登录
#!/bin/bash
#
who | grep "hadoop" &>/dev/null
RETVAL=$?

while [ RETVAL -ne 0 ];do
   echo "date ,hadoop is not logged"
   sleep 5
   who | grep "hadoop" &>/dev/null
   RETVAL=$?
done

echo "hadoop  is logged in."

----------------------------
<<EOF
(内容)
EOF

把EOF替换成其东西
意思把内容当作标准输入传给程序
----------------------------
显示一个菜单给用户
第一版
#!/bin/bash、
#
cat << EOF
d|D) show disk usages.
m|M) show memory usages.
s|S) show swap usages.
EOF

read -p "your choice:" CHOICE
case $CHOICE in
d|D)
   echo "DISK usages:"
   df -Ph
   ;;
m|M)
   echo "MEMORY usages:"
   free -m | grep "Men"
   ;;
s|S)
   echo "SWAP usages:"
   free -m | grep "swap"
   ;;
*)
   echo "Unknown"
   exit 9
esac

esac

第二版
#!/bin/bash
#
cat << EOF
d|D) show disk usages.
m|M) show memory usages.
s|S) show swap usages.
EOF

read -p "your choice:" CHOICE
while [ $CHOICE == ‘quit‘];do    
   case $CHOICE in
   d|D)
       echo "DISK usages:"
       df -Ph
       ;;
   m|M)
       echo "MEMORY usages:"
       free -m | grep "Men"
       ;;
   s|S)
       echo "SWAP usages:"
       free -m | grep "swap"
       ;;
   *)
       echo "Unknown.."
       ;;
   esac
   read -p "Again,your choice: " CHOICE
done

知识点
man echo  
echo -e "\033[1mHello\003[0m,world"
echo -e "\033[2mHello\003[0m,world"
echo -e "\033[31mHello\003[0m,world"
echo -e "\033[41mHello\003[0m,world"
echo -e "\033[32;41mHello\003[0m,world"
echo -e "\033[1;37mHello\003[0m,world"

扩展题目:给用户颜色的显示
echo -n -e "\033[31myour choice:\033[0m"
read CHOICE
while [ $CHOICE == ‘quit‘];do    
   case $CHOICE in
   d|D)
       echo "DISK usages:"
       df -Ph
       ;;
   m|M)
       echo "MEMORY usages:"
       free -m | grep "Men"
       ;;
   s|S)
       echo "SWAP usages:"
       free -m | grep "swap"
       ;;
   *)
       echo "Unknown.."
       ;;
   esac
   read -p "Again,your choice: " CHOICE
done

Linux之部分shell脚本练习,布布扣,bubuko.com

时间: 2024-10-12 08:26:30

Linux之部分shell脚本练习的相关文章

Linux生产服务器Shell脚本分享

Linux生产服务器Shell脚本分享 2012-6-6 86市场网 linux 作为一名Linux/unix系统管理员,我经常遇到人问这个问题:shell能做什么?PHP这么强大,为什么不用PHP来完成工作呢?其实相对于PHP这些开发语言而言,shell主要用于数据库备份(SVN备份).计划任务(crontab).服务状态监控.FTP远程备份等.对于这些任务,shell的强大是大家都公认的,这也是每一个Linux/unix系统管理员的基本之一.现在在Windows 2008里也出现了Power

Linux中执行shell脚本的4种方法

这篇文章主要介绍了Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法,需要的朋友可以参考下. bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/root/bin目录中并已有执行权限(添加权限的方法:chmod +x hello.sh). 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: ./ 的意思是说在当前的工作目录下执行hello.sh.如果不加上

Linux下添加shell脚本使得nginx日志每天定时切割压缩

Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常时查日志,还是使用"GoAccess"等工具对日志进行分析都将会变得非常麻烦.因此,每天定时对nginx日志进行切割压缩就非常有必要了 二 实现 我的实现思路是每天晚上接近12点时定时执行脚本.其脚本内容就是将当前的nginx日志先按照当天日期进行重命名接着进行压缩,最后是新建空白的ngi

Linux中执行shell脚本

这篇文章主要介绍了Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法,需要的朋友可以参考下 bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限.方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:复制代码 代码如下: cd /data/shell./hello.sh ./的意思是说在当前的工作目录下执行hello.s

Linux之部分shell脚本练习(二)

while CONDITION;do    statementdone 进入循环:条件满足退出循环:条件不满足 until CONDITION;do    statment    ...done #!/bin/bash#read -p "Input something:" STRING while[ $STRING != 'quit'];do    echo $STRING | tr 'a-z' 'A-Z'    read -p "Input something:"

Linux下的shell脚本编程-变量-算术表达式-判断语句-if分支语句

Linux下的shell脚本编程-变量-算术表达式-判断语句-if分支语句 一:实验环境 1):虚拟机 2):linux系统 二:实验目标 1): shell 基本语法 2):变量 3):表达式 4):判断语句 5): if表达式 三:实验脚本 第一块 一个简单的shell脚本程序 [[email protected] ~]# mkdir test [[email protected] test]# vim example1.sh #!/bin/bash #This is to show wha

2019.11.13课堂实验之用Linux下的shell脚本完成两文本交替输出

有两个文本如下,实际中并不知道两文本各有多少行: 文本1.txt aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ccccccccccccccccccccccccccccccccccccccc eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ggggggggggggggggggggggggggggggggggggggg wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww zzzzzzzzzzzzzzzzz

Linux中的shell脚本编程——基础篇

概述: shell脚本在Linux系统管理员的运维工作中非常重要.shell脚本能够帮助我们很方便的管理服务器,因为我们可以指定一个任务计划,定时的去执行某一个脚本以满足我们的需求.本篇将从编程基础.脚本基本格式.变量.运算.条件测试这几个方面详细介绍shell脚本编程的基础内容,也是我们必须要掌握熟练的内容. 一.编程环境 1.程序:指令+数据 程序编程的风格有两种: 过程式:以指令为中心,数据服务与指令 对象式:以数据为中心,指令服务于数据 2.程序的执行方式: □计算机:只能识别二进制文件

linux 定时执行shell脚本 定时任务

本文讲述crontab具体用法,以供备忘. 在oracle 中可以利用dbms_job包定时执行pl/sql.sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成 利用crontab来定时执行任务大致有如下三步: 1.编写shell脚本 2.利用crontab加入到定时任务队列 3.查看作业完成情况 一.如何建立shell脚本 linux下有很多不同的shell,但我们通常使用bash(bourne again shell)进行编程,因为bash是免费的并且很容易使用 程序