iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >8个实用的Shell脚本分享
  • 564
分享到

8个实用的Shell脚本分享

脚本Shell 2022-06-04 21:06:44 564人浏览 八月长安
摘要

几个shell脚本的例子,觉得还不错。 【例子:001】判断输入为数字,字符或其他 #!/bin/bash read -p "Enter a number or string here:" inpu

几个shell脚本的例子,觉得还不错。

【例子:001】判断输入为数字,字符或其他

#!/bin/bash  

read -p "Enter a number or string here:" input  

  

case $input in  

   [0-9]) echo -e "Good job, Your input is a numberic! n" ;;  

[a-zA-Z]) echo -e "Good job, Your input is a character! n" ;;  

       *) echo -e "Your input is wrong, input again!   n"  ;;  

esac

【例子:002】求平均数
#!/bin/bash  

  

# Calculate the average of a series of numbers.  

  

SCORE="0"  

AVERAGE="0"  

SUM="0"  

NUM="0"  

  

while true; do  

  

  echo -n "Enter your score [0-100%] ('q' for quit): "; read SCORE;  

  

  if (("$SCORE" < "0"))  || (("$SCORE" > "100")); then  

    echo "Be serious.  Common, try again: "  

  elif [ "$SCORE" == "q" ]; then  

    echo "Average rating: $AVERAGE%."  

    break  

  else  

    SUM=$[$SUM + $SCORE]  

    NUM=$[$NUM + 1]  

    AVERAGE=$[$SUM / $NUM]  

  fi  

  

done  

  

echo "Exiting."

【例子:003】自减输出
[scriptname: doit.sh]  

while (( $# > 0 ))  

do  

  echo $*  

  shift  

done   

          

/> ./doit.sh a b c d e  

a b c d e  

b c d e  

c d e  

d e  

e

【例子:004】在文件中添加前缀
# 人名列表  

# cat namelist  

Jame  

Bob  

Tom  

Jerry  

Sherry  

Alice  

John  

  

# 脚本程序  

# cat namelist.sh  

#!/bin/bash  

for name in $(cat namelist)  

do  

        echo "name= " $name  

done  

echo "The name is out of namelist file"  

  

# 输出结果  

# ./namelist.sh  

name=  Jame  

name=  Bob  

name=  Tom  

name=  Jerry  

name=  Sherry  

name=  Alice  

name=  John

【例子:005】批量测试文件是否存在

[root@host ~]# cat testfile.sh        

#!/bin/bash  

  

  

for file in test*.sh  

do  

  if [ -f $file ];then  

     echo "$file existed."  

  fi  

done  

  

[root@host ~]# ./testfile.sh  

test.sh existed.  

test1.sh existed.  

test2.sh existed.  

test3.sh existed.  

test4.sh existed.  

test5.sh existed.  

test78.sh existed.  

test_dev_null.sh existed.  

testfile.sh existed.

【例子:005】用指定大小文件填充硬盘
[root@host ~]# df -ih /tmp  

Filesystem            Inodes   IUsed   IFree IUse% Mounted on  

/dev/mapper/vg00-lvol5  

                       1000K    3.8K    997K    1% /tmp  

[root@host ~]# cat cover_disk.sh  

#!/bin/env bash  

counter=0  

max=3800  

remainder=0  

while true  

do  

    ((counter=counter+1))  

    if [ ${#counter} -gt $max ];then  

        break  

    fi  

    ((remainder=counter%1000))  

    if [ $remainder -eq 0 ];then  

        echo -e "counter=$countertdate=" $(date)  

    fi  

    mkdir -p /tmp/temp  

    cat < testfile > "/tmp/temp/myfile.$counter"  

    if [ $? -ne 0 ];then  

        echo "Failed to write file to Disk."  

        exit 1  

    fi  

done  

echo "Done!"  

[root@host ~]# ./cover_disk.sh  

counter=1000    date= Wed Sep 10 09:20:39 HKT 2014  

counter=2000    date= Wed Sep 10 09:20:48 HKT 2014  

counter=3000    date= Wed Sep 10 09:20:56 HKT 2014  

cat: write error: No space left on device  

Failed to write file to Disk.  

dd if=/dev/zero of=testfile bs=1M count=1

【例子:006】通过遍历的方法读取配置文件
[root@host ~]# cat hosts.allow  

127.0.0.1  

127.0.0.2  

127.0.0.3  

127.0.0.4  

127.0.0.5  

127.0.0.6  

127.0.0.7  

127.0.0.8  

127.0.0.9  

[root@host ~]# cat readlines.sh  

#!/bin/env bash  

i=0  

while read LINE;do  

    hosts_allow[$i]=$LINE  

    ((i++))  

done < hosts.allow  

for ((i=1;i<=${#hosts_allow[@]};i++)); do  

    echo ${hosts_allow[$i]}  

done  

echo "Done"  

[root@host ~]# ./readlines.sh  

127.0.0.2  

127.0.0.3  

127.0.0.4  

127.0.0.5  

127.0.0.6  

127.0.0.7  

127.0.0.8  

127.0.0.9  

Done

【例子:007】简单正则表达式应用
[root@host ~]# cat regex.sh  

#!/bin/env sh  

#Filename: regex.sh  

regex="[A-Za-z0-9]{6}"  

if [[ $1 =~ $regex ]]  

then  

  num=$1  

  echo $num  

else  

  echo "Invalid entry"  

  exit 1  

fi  

[root@host ~]# ./regex.sh 123abc  

123abc  

  

#!/bin/env bash  

#Filename: validint.sh  

validint(){  

    ret=`echo $1 | awk '{start = match($1,/^-?[0-9]+$/);if (start == 0) print "1";else print "0"}'`  

    return $ret  

}  

  

validint $1  

  

if [ $? -ne 0 ]; then  

    echo "Wrong Entry"  

    exit 1  

else  

    echo "OK! Input number is:" $1  

fi

【例子:008】简单的按日期备份文件
#!/bin/bash  

  

NOW=$(date +"%m-%d-%Y")      # 当前日期  

FILE="backup.$NOW.tar.gz"    # 备份文件  

echo "Backing up data to /tmp/backup.$NOW.tar.gz file, please wait..."  #打印信息  

tar xcvf /tmp/backup.$NOW.tar.gz /home/ /etc/ /var       # 同时备份多个文件到指定的tar压缩文件中  

echo "Done..."

--结束END--

本文标题: 8个实用的Shell脚本分享

本文链接: https://www.lsjlt.com/news/18467.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 向大家分享一个shell脚本的坑
    打算在跳板机上写一个shell脚本,批量检查远程服务器上的main进程是否在健康运行中。先找出其中一台远程机器,查看main进程运行情况[root@two002 tmp]# ps -ef|grep m...
    99+
    2023-06-06
  • 109 个实用 shell 脚本
    Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。 Shell可以直接使用在win/Unix/Linux上面,并且可以调用大量系统内部的功能来解释执...
    99+
    2023-09-08
    linux 服务器 java
  • Shell脚本中调用另一个Shell脚本的示例分析
    小编给大家分享一下Shell脚本中调用另一个Shell脚本的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!主要以下有几种方式:CommandExplana...
    99+
    2023-06-09
  • linux下进程监控的shell脚本分享
    这篇文章主要介绍“linux下进程监控的shell脚本分享”,在日常操作中,相信很多人在linux下进程监控的shell脚本分享问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux下进程监控的shell脚...
    99+
    2023-06-09
  • 实现大小写字母转换的shell脚本分享
    这篇文章主要讲解了“实现大小写字母转换的shell脚本分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“实现大小写字母转换的shell脚本分享”吧!代码如下:#!/bin/sh #edit ...
    99+
    2023-06-09
  • CentOS下mysql定时备份的Shell脚本分享
    这篇文章主要讲解了“CentOS下mysql定时备份的Shell脚本分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CentOS下mysql定时备份的Shell脚本分享”吧!1、备份语句&...
    99+
    2023-06-09
  • nginx进行日志切割的shell脚本分享
    本篇内容主要讲解“nginx进行日志切割的shell脚本分享”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“nginx进行日志切割的shell脚本分享”吧!一、脚本思路第一步就是重命名日志文件,不...
    99+
    2023-06-09
  • 4个的Python自动化脚本分享
    目录1、将 PDF 转换为音频文件 2、从列表中播放随机音乐 3、不再有书签了 4、清理下载文件夹 前言: 大家平时有没有注意到你每天可能会执行许多的重复的任务,例如阅读 pdf、播...
    99+
    2024-04-02
  • 分享8 个常用pandas的 index设置
    目录1. 将索引从 groupby 操作转换为列2. 使用现有的 DataFrame 设置索引3. 一些操作后重置索引4.排序后重置索引5.删除重复后重置索引6. 索引的直接赋值7....
    99+
    2024-04-02
  • 13个简便高效的Python脚本分享
    目录1.使用 Python 进行速度测试2.在谷歌上搜索3.制作网络机器人4.获取歌曲歌词5.获取照片的Exif数据6.提取图像中的 OCR 文本7.将照片转换为Cartonize8...
    99+
    2023-01-06
    Python脚本分享 Python脚本
  • 使用iconv批量改变文件编码的shell脚本分享
    这篇文章主要介绍“使用iconv批量改变文件编码的shell脚本分享”,在日常操作中,相信很多人在使用iconv批量改变文件编码的shell脚本分享问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”使用iconv...
    99+
    2023-06-09
  • 自动监控主从MySQL同步的SHELL脚本分享
    这篇文章主要介绍“自动监控主从MySQL同步的SHELL脚本分享”,在日常操作中,相信很多人在自动监控主从MySQL同步的SHELL脚本分享问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2024-04-02
  • 【整理分享】8 个实用Vue开发技巧
    本篇文章整理分享8 个很棒的 Vue 开发技巧,包括路由参数解耦、功能组件、样式范围、watch的高级使用、watch监听多个变量等,希望对大家有所帮助!1.路由参数解耦通常在组件中使用路由参数,大多数人会做以下事情。export defa...
    99+
    2023-05-14
    Vue
  • 实现shell脚本nicenumber的示例分析
    这篇文章给大家分享的是有关实现shell脚本nicenumber的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Given a number, shows it in comma-separated fo...
    99+
    2023-06-09
  • 如何在Shell脚本中调用另一个脚本
    如何在Shell脚本中调用另一个脚本?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。假如有脚本 first.sh:#!/bin/bash#------------------...
    99+
    2023-06-09
  • 怎么在Shell脚本中调用另一个脚本
    这期内容当中小编将会给大家带来有关怎么在Shell脚本中调用另一个脚本,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。forkfork 是最普通的, 就是直接在脚本里面用 path/to/foo.sh 来调...
    99+
    2023-06-09
  • 十个简单使用的Python自动化脚本分享
    目录1.给照片添加水印2.检测文本文件的相似性3.对文件内容进行加 密4.将照片转换为PDF5.修改照片的长与宽6.对于照片的其他操作7.测试网速8.货币汇率的转换9.生成...
    99+
    2024-04-02
  • 分享5个方便好用的Python自动化脚本
    目录1、自动化阅读网页新闻2、自动生成素描草图3、自动发送多封邮件4、自动化数据探索5、自动桌面提示前言: 相比大家都听过自动化生产线、自动化办公等词汇,在没有人工干预的情况下,机器...
    99+
    2024-04-02
  • 利用Python编写的实用运维脚本分享
    目录1. 执行外部程序或命令2. 文件和目录操作(命名、删除、拷贝、移动等)3. 创建和解包归档文件参考Python在很大程度上可以对shell脚本进行替代。笔者一般单行命令用she...
    99+
    2024-04-02
  • mysql的备份脚本分享
    本篇内容介绍了“mysql的备份脚本分享”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!#!/bin/bas...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作