1. 写一个脚本,利用循环计算10的阶乘#!/bin/sh
factorial=1
for a in `seq 1 10`
do
       factorial=`expr $factorial \* $a`
done
echo "10! = $factorial"

2. 写一个脚本,执行后,打印一行提示“Please input a number:",要求用户输入数值,然后打印出该数值,然后再次要求用户输入数值。直到用户输入"end"停止。#!/bin/sh
unset var

while [ "$var" != "end" ]
do
     echo -n "please input a number: "
     read var
     if [ "$var" = "end" ]
     then
         break
     fi
     echo "var is $var"
done
//
#!/bin/sh
unset var
while [ "$var" != "end" ]
do
     echo -n "please input a number: "
     read var
     if [ "$var" = "end" ]
     then
         break
     fi
     echo "var is $var"
done

3. 写一个脚本,利用循环和continue关键字,计算100以内能被3整除的数之和

4.一个函数,利用shift计算所有参数乘积,假设参数均为整数

#! /bin/sh
result=1
while [ $# -gt 0 ]
do
     result=`expr $result * $1`
     shift
done
echo $result

5.写一个脚本,可以根据参数文件名,以正确的参数调用tar来解压缩tar.gz或tar.bz2文件。#!/bin/shcase ${1##*.tar.} in     bz2)         tar jxvf $1         ;;     gz)         tar zxvf $1         ;;     *)         echo "wrong file type"esac6.写一个脚本以方便用户查询rpm的相关信息。这个脚本首先提示用户选择查询依据,比如文件名,包名,全部等。然后提示用户选择查询信息,比如包名,包里所包含的所有文件,包的信息等。然后询问是否继续查询,是则循环刚才的过程,否则退出。

#!/bin/bash
# favourite OS.       samli          2004.4.19
echo "What is your favourite OS?"
select var in "Linux" "UNIX" "Windows" "Other"; do
echo "You have selected $var."
#break
done

# !/bin/bash
# list a content summary of a number of RPM packages           samli         2004.4.19
# USAGE: showrpm rpmfile1 rpmfile2 ...
# EXAMPLE: showrpm /cdrom/Thizlinux/RPMS/*.rpm

for rpmpackage in $*;
do
if [ -r "$rpmpackage" ];
then
echo "=============== $rpmpackage =============="
/bin/rpm -qip $rpmpackage
else
echo "ERROR: cannot read file $rpmpackage"
fi
done

#!/bin/bash
if [ $# -le 0 ]
then
echo "Not enough parameters"
exit 1
fi
#string="2 3 4 5 6"
#set string
sum=0
while [ $# -gt 0 ]
do
sum=`expr $sum + $1`
shift
done
echo $sum

#! /bin/bash
echo "*******************************"
echo "Please select your operation:"
echo " 1 Copy"
echo " 2 Delete"
echo " 3 Backup"
echo "*******************************"
read op
case $op in
     C)
       echo "your selection is Copy"
     ;;
     D)
       echo "your selection is Delete"
     ;;
     B)
       echo "your selection is Backup"
     ;;
     *)
       echo "invalid selection"
esac
#! /bin/sh
while true
do
   echo "*******************************"
   echo "Please select your operation:"
   echo " 1 Copy"
   echo " 2 Delete"
   echo " 3 Backup"
   echo " 4 Quit"
   echo "*******************************"
   read op
   case $op in
        C)
          echo "your selection is Copy"
           ;;
        D)
          echo "your selection is Delete"
          ;;
        B)
         echo "your selection is Backup"
           ;;
        Q)
          echo "Exit ..."
               break
          ;;
        *)
          echo "invalid selection,please try again"
   esac
done
#! /bin/sh
a=10
b=20
c=30
value1=`expr $a + $b + $c`
echo "The value of value1 is $value1"
value2=`expr $c / $b`
echo "The value of value2 is $value2"
value3=`expr $c * $b`
echo "The value of value3 is $value3"
value4=`expr $a + $c / $b`
echo "The value of value4 is $value4"
var4=`expr $value4 - $value2`
echo $var4

#! /bin/sh
sum=0
for i in $* 
do
    sum=`expr $sum + $i`
done
echo $sum
abc=123
echo $abc

###定义函数

example1()

{

abc=456

}

###调用函数

example1

echo $abc

abc=234234

example1

echo $abc

###定义函数,使用参数

example2()

{

echo $1

echo $2

}

###调用函数,向它传递参数

example2 abc bbb

example2 dksdfsdfsfaa bbb

#!/bin/bash
echo "please input a file name:"
read file_name
if [ -d $file_name ]
then
echo "$file_name is a directory"
elif [ -f $file_name ]
then 
echo "$file_name is a regular file"
elif [ -c $file_name -o -b $file_name ]
then 
echo "$file_name is a device file"
else
echo "$file_name is an unkonwn file"
fi

#! /bin/sh
read first second third
echo "the first parameter is $first"
echo "the second parameter is $second"
echo "the third parameter is $third"

#! /bin/sh
if [ $# -ne 2 ]; then
   echo "Not enough parameters"
   exit 0
fi

if [ $1 -eq $2 ]; then
   echo "$1 equals $2"
elif [ $1 -lt $2 ]; then
   echo "$1 less than $2"
elif [ $1 -gt $2 ]; then
   echo "$1 greater than $2"
fi

#clear
#:trap "" 2 18 20 24
#e cho "***********************************************************************"
#e cho " HI! You changed my root password"
#e cho " This is a little punishment for you then you can use the shell"
#e cho " You must answer my three questions and type "yes" or "no" to answer"
#
#answer="no"
#
#e cho "***********************************************************************"
#e cho "Please press "Enter" key to continue"
#read
#while [ $answer = "no" ]
#do
#     echo
#     echo "1.Are you a boy ? (yes/no)"
#     read answer
#done
#
#answer="no"
#
#until [ $answer = "yes" ]
#do
#     echo
#     echo "2.Are you foolish ? (yes/no)"
#     read answer
#done
#
#answer="no"
#
#until [ $answer = "yes" ]
#do
#     echo
#     echo "3.Do you love me ? (yes/no)"
#     read answer
#done
#
#e cho "***********************************************************************"
#e cho
#e cho "Now ! I know you are a foolish girl and you love me."
#e cho
#e cho "So you can continue"
#e cho
#e cho "**************************************************************"
#e cho
#sleep 3
#e cho "    (haha ! It is just a joke)"
i=1
echo "this time i is not equal to 4"
while [ $i -le 8 ]
do
       ((i=i+1))
       if [ $i -eq 4 ]
       then
              echo "this time i is equal to 4"
              continue
       fi
       echo "this time i is not equal to 4"
done
echo "The command is $0"
echo "The first argument is $1, the second argument is $2"
echo "The entire command is $0 $1 $2"
echo "And there are $# arguments"
echo "The end of testing"

#! /bin/sh
if [ $# -gt 1 ] 
then
echo "Too many parameters"
exit 1
fi

if [ $# -eq 0 ] 
then
echo "Too few parameters"
exit 100
fi

if [ ! -d $1 ]
then
echo "Usage : $0 directory"
exit 1
fi

#for i in $1/*
#do
# if [ -x $i -a ! -d $i ]
#    then
#     ls $i
# fi
#done

#!/bin/sh

RPM=/bin/rpm

option="-q"

while true

do

echo "what to query?"

select var in "All" "file" "package name"

do

case $var in

All)

option=$option"a"

break

;;

file)

echo -n "please input file name: "

option=$option"f"

read argument

break

;;

package\ name)

echo -n "please input package name: "

read argument

break

;;

*)

echo "please choose between 1-3"

;;

esac

done

echo "what do you want to know?"

select var in "location" "info" "package name"

do

case $var in

location)

option=$option"l"

break

;;

info)

option=$option"i"

break

;;

package\ name)

break

;;

*)

echo "please choose between 1-3"

;;

esac

done

${RPM} $option $argument

echo "continue? [yes/no]"

read answer

if [ answer = "no" ]

then

break

fi

done

#!/bin/sh
sum=0
for a in `seq 1 100`
do
     if [ `expr $a % 3` -ne 0 ]
     then
          continue
     fi
     echo $a
     sum=`expr $sum + $a`
done
echo "sum = $sum"
#!/bin/bash
ftype=`file "$1"`
case "$ftype" in
"$1: Zip archive"*)
/usr/bin/unzip "$1" ;;
"$1: gzip compressed"*)
/bin/gunzip "$1" ;;
"$1: bzip2 compressed"*)
/usr/bin/bunzip2 "$1" ;;
*)
echo "Sorry, file $1 can not be uncompressed with smartzip." ;;
esac

注:上面有一行,for a in `seq 1 10`,其中seq 1 10 , 即列出现1到10之间所有的数字,这一行也可改为:for a in "1 2 3 4 5 6 7 8 9 10", 在用 expr 进行乘法运算时,为了避免 * 被看成匹配符,需要对其进行转义, 用 \*

自动备份数据库脚本两个!

MySQL:Linux下自动备份数据库的shell脚本 Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库。其实非常简单,主要就是使用 MySQL 自带的 mysqldump 命令。

脚本内容如下:
#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
DB_NAME="test"
DB_USER="username"
DB_PASS="password"

# Others vars
BIN_DIR="/usr/local/mysql/bin"
BCK_DIR="/home/mysql/backup"
DATE=`date +%F`

# TODO
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BCK_DIR/db_$DATE.gz

然后使用将此脚本加到 /etc/crontab 定时任务中:

01 5 * * 0 mysql /home/mysql/backup.sh

好了,每周日凌晨 5:01 系统就会自动运行 backup.sh 文件备份 MySQL 数据库了。

/home/www/inc/back

第二个!!!!

  1. #!/bin/sh
  2. # File: /home/mysql/backup.sh
  3. # Database info bakupmysql
  4. DB_USER="user"
  5. DB_PASS="password"
  6. # Others vars
  7. DATE=`date +%Y-%m-%d`
  8. mkdir /home/mysqlbak/$DATE
  9. BIN_DIR="/usr/local/mysql/bin"
  10. BCK_DIR="/home/mysqlbak/$DATE"
  11. # TODO
  12. $BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS discuz > $BCK_DIR/discuz.sql
  13. $BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS zjblog > $BCK_DIR/zjblog.sql
  14. $BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS openads > $BCK_DIR/openads.sql

Linux shell 脚本实例相关推荐

  1. Linux shell脚本基础学习

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...

  2. Linux shell脚本基础学习详细介绍(完整版)2

    详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...

  3. Linux编写脚本nsum求和,详解Linux Shell脚本编写技巧,附实例说明

    原标题:详解Linux Shell脚本编写技巧,附实例说明 Linux Shell是一个很难的知识板块.虽然大家都认真学,基本的语法很都掌握,但有需求时,很难直接上手编程,要么写了很久,要么写不好!对 ...

  4. linux运维实战练习及linux shell脚本、awk、sed工具命令学习总结

    一.linux shell 脚本 1.描述shell程序的运行原理(可附带必要的图形说明): Linux系统的shell作为操纵系统的外壳,为用户提供使用操纵系统的接口.它是命令语言.命令解释程序及程 ...

  5. Linux Shell脚本入门教程系列之(三)Shell变量

    本文是Linux Shell脚本系列教程的第(三)篇,更多shell教程请看:Linux Shell脚本系列教程 Shell作为一种高级的脚本类语言,也是支持自定义变量的.继上一篇之后,今天就为大家介 ...

  6. linux脚本定时拷贝文件,使用Linux shell脚本实现FTP定时执行批量下载指定文件

    使用FTP定时批量下载指定文件的shell脚本,具体实例介绍如下所示: 1.目标FTP服务器地址 #FTP服务器地址 ip=10.19.15.23 2.FTP账号和密码 u=账号 p=密码 3.使用m ...

  7. 超硬核,11个非常实用的 Python 和 Shell 脚本实例

    原文地址: https://developer.51cto.com/article/712305.html Python 脚本部分实例:企业微信告警.FTP 客户端.SSH 客户端.Saltstack ...

  8. 学习笔记之Linux Shell脚本教程:30分钟玩转Shell脚本编程

    Linux Shell脚本教程:30分钟玩转Shell脚本编程 http://c.biancheng.net/cpp/shell/ 转载于:https://www.cnblogs.com/pegasu ...

  9. linux 检查权限,检查目录下 文件的权限-linux shell脚本,

    检查目录下 文件的权限-linux shell脚本, #!/bin/bash #History: #2019/07/23    Fsq #This Program will check Permiss ...

最新文章

  1. 国内人工智能专利布局存隐忧
  2. 认识VLAN,并学会VLAN的划分和网络配置实例
  3. java types.varchar_java statement.registerOutParameter(5, java.sql.Types.VARCHAR)返回值长度限制...
  4. debian6 snmpd 安装配置
  5. 拼装sql_2020最新最全面的SQL优化干货总结
  6. C#周立功CAN卡二次开发心得
  7. 【PAT刷题甲级】部分笔记1065-1155~(下)
  8. 【CF724F】Uniformly Branched Trees
  9. html 调用桌面exe程序,如何使用HTML、CSS和JavaScript轻松构建桌面应用程序
  10. Android手机投屏后没有声音,乐播投屏电视没有声音怎么办_乐播投屏电视没有声音手机有声音解决办法_3DM手游...
  11. linux 获取视频截图,linux ffmpeg 视频截图 安装使用
  12. 访问控制模型总结(DAC MAC RBAC ABAC)
  13. nestjs入门(controller,service,module)
  14. 自定义android模拟器,在模拟器上运行自定义Android ROM
  15. 4G无线模块 电力通信模块
  16. css一些特殊的图形,CSS 绘制特殊图形
  17. 社交电商成为下一个风口,社交电商怎么做?
  18. 网易云音乐搜索引擎 python+whoosh---(2)搜索引擎
  19. 点击电脑图标,显示电脑界面。点击相同的二维码图标,显示二维码界面(七)
  20. 分享玄学硬件调试问题

热门文章

  1. php数据库的值嵌入input_求助:问个关于用INPUT提取数据库里的值然后修改的问题。...
  2. c-free5.0运行程序错误_web前端之异常/错误监控
  3. php自动加载原理,php中的自动加载类机制原理
  4. php网页如何做出透明的效果,css+filter实现简单的图片透明效果
  5. matlab有趣表白程序_小人表白MATLAB代码
  6. maven 打包失败 提示找不到jar的问题
  7. 二 vue环境搭建
  8. MATLAB 随机过程基本理论
  9. 每天进步一点点——Linux系统时间来处理
  10. poj1548Robots dfs实践