ImageVerifierCode 换一换
格式:DOC , 页数:34 ,大小:154.51KB ,
资源ID:4333200      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4333200.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Shell脚本例子集合.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Shell脚本例子集合.doc

1、 # vi xx.sh 退出并保存 # chmod +x xx.sh # ./xx.sh -2.调试脚本的方法 # bash -x xx.sh就可以调试了. -1.配置secureCRT的设置(我用的是6.2.3 build313版本,汉化版) 选项->会话选项(S)...->终端->仿真->终端(T)->把VT100改成Xterm->点中ANSI 颜色(A)和使用颜色方案(U)复选框. 这样就有颜色显示了. 选项->会话选项(S)...->终端->外观->字符编码(H)->从Default变到UTF-8. 这样就有中文显示了.

2、 1.写一个脚本,执行后,打印一行提示"Please input a number:",要求用户输入数值,然后打印出该数值,然后再次要求用户输入数值.直到用户输入"end"停止. # vi show_var.sh 脚本内容: #!/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 $

3、var" done 命令保存后退出,并执行: # chmod +x show_var.sh # ./show_var.sh please input a number: 1 var is 1 please input a number: s var is s please input a number: end # 2.写一个脚本,测试位置参数 # vi param.sh 脚本内容: #!/bin/bash #test shell echo $0 echo $1 echo $2 echo $? echo

4、 $* echo $# 命令保存后退出,并执行: # chmod +x param.sh # ./param.sh yema Bhanv edu network ./param.sh //程序名称 Yema //第一个参数 Bhanv //第二个参数 0 //程序执行结果 yema Bhanv edu network //传递参数所组成的字符串 4 //参数个数 3.写一个脚本,可以根据参数文件名,以正确的参数调用tar来解压缩tar.gz或tar.bz2文件. # vi tar_gz_bz2.sh 脚本内容: #!/bi

5、n/sh case ${1##*.tar.} in bz2) tar jxvf $1 ;; gz) tar zxvf $1 ;; *) echo "wrong file type" esac 命令保存后退出,并执行: # chmod +x tar_gz_bz2.sh # ./tar_gz_bz2.sh # touch "helloA" > a.txt //写一个测试用的文件 # tar czvf a.tar.gz a.txt //把a.txt压缩成tar.gz文件 # rm -rf a

6、txt //删除a.txt来测试脚本 # ls a.* a.tar.gz # ./tar_gz_bz2.sh a.tar.gz # ls a.* a.tar.gz a.txt //验证了正确性 # touch "helloB" > b.txt //写一个测试用的文件 # tar cjvf b.tar.bz2 b.txt //把b.txt压缩成tar.bz2文件 # rm -rf b.txt //删除b.txt来测试脚本 # ls b.* b.tar.bz2 # ./tar_gz_bz2.sh b.tar.bz2 # ls b.* b.t

7、ar.bz2 b.txt //验证了正确性 # rm -rf a.txt a.tar.gz //删除测试用的文件 # rm -rf b.txt b.tar.bz2 //删除测试用的文件 4.小棍子显示 # vi showstick.sh #!/bin/bash i=0 while [ $i -lt 10 ] do for j in '-' '\\' '|' '/' do echo -ne "\033[1D$j" usleep 50000 done ((i++)) done 保存 # ch

8、mod +x showstick.sh # ./showstick.sh 看效果. 5.显示类似wget 的进度 # vi showwget.sh #!/bin/bash i=0 while [ $i -lt 10 ] do for j in '-' '\\' '|' '/' do echo -ne "\033[1D$j" usleep 50000 done ((i++)) done 保存 # chmod +x showwget.sh # ./showwget.sh 看效

9、果. 6.定义loop的变量 1 2 3 4 5是变量列表 # vi forlist.sh #!/bin/bash #for with list for loop in 1 2 3 4 5 do echo ${loop} done 保存 # chmod +x forlist.sh # ./forlist.sh 看效果. 7.读取文件中的每串字符,去掉了回车或者空格,输出每行就显示一个字符串. 编写文件var.txt # vi var.txt 1 22 3 4

10、 5 6 保存 # vi listfile.sh #!/bin/bash for loop in `cat var.txt` do echo ${loop} done 保存 # chmod +x listfile.sh # ./listfile.sh 看效果. 8.编写一个脚本自动生成一个C类IP地址段 IP地址段网络部分由用户指定 # vi ipaddr.sh #!/bin/bash for ip in `seq 1 254` do echo ${1}.${ip}

11、 done 保存 # chmod +x ipaddr.sh # ./ipaddr.sh 192.168.1 看效果. 9.编写一个脚本自动生成一个C类IP地址段 IP地址段网络部分由用户指定,主机结束部分由用户指定 # vi ipaddr2.sh #!/bin/bash for ip4 in `seq 1 ${2}` do echo ${1}.${ip4} done 保存 # chmod +x ipaddr2.sh # ./ipaddr2.sh 192.168.1 100 看效果.

12、10.编写一个脚本自动生成一个C类IP地址段 IP地址段网络部分由用户指定,主机结束部分由用户指定 # vi ipaddr3.sh #!/bin/bash for ip3 in `seq 1 5` do for ip4 in `seq 1 ${2}` do echo ${1}.${ip3}.${ip4} done done 保存 # chmod +x ipaddr3.sh # ./ipaddr3.sh 192.168 2 100 看效果. 11.编写一个脚本测试while的性能 # vi men

13、u-while.sh #!/bin/bash while [ "1" == "1" ] do clear echo "-------menu-----" echo "1) Show Time" echo "2) CPU load" echo "3) Memory free" echo "0) Exit" echo "---------------" echo -n "Enter you chose [0-3]:" read Chose case ${Chose} in 0) exit ;; 1) date +%T;;

14、 2) uptime | awk -F '[,]' '{print $1}';; 3) free -m | awk '$1=="Mem:"{print $4}';; *) echo "This is not between 0-3." ;; esac echo -n "Do you contine [y/n]:" read contine if [ "${contine}" == "n" -o "${contine}" == "N" ] then exit fi done 保存 # chmod +x me

15、nu-while.sh # ./menu-while.sh 看效果. 12.echo颜色显示 # vi showcolor.sh #!/bin/bash echo -e "\033[40;35mHell,world! \033[0m" echo "Hello,world" 保存 # chmod +x showcolor.sh # ./showcolor.sh 看效果. 13.sort排序 # vi showsort.sh #!/bin/bash sort -k3 -n -r -t: /etc/pas

16、swd 保存 # chmod +x showsort.sh # ./showsort.sh 看效果. 14.wc统计字数 # vi showwc.sh #!/bin/bash wc /etc/passwd 保存 # chmod +x showwc.sh # ./showwc.sh 看效果. 15.diff判断文件的差异 # vi a.txt Hello World 保存 # vi b.txt Hello You 保存 # vi showdiff.sh #!/bin/b

17、ash diff a.txt b.txt 保存 # chmod +x showdiff.sh # ./showdiff.sh 看效果. 15.diff判断文件的差异 # vi showawk.sh #!/bin/bash awk -F: '{print $1,$3}' /etc/passwd 保存 # chmod +x showawk.sh # ./showawk.sh 看效果. 16.test判断文件的差异 # vi showtest.sh #!/bin/bash #中间是a与操作,则都为

18、0才得0 #中间是o或操作,则有一真则真0 test -e /etc/passwd -a -e /etc/shadow echo $? test -e /etc/passwd -o -e /etc/groups echo $? 保存 # chmod +x showtest.sh # ./showtest.sh 看效果. 17.输入判断 # vi input.sh #!/bin/bash #input test echo -n "Enter your name:" read name #did the user

19、just hit return if [ "${name}" == "" ] then echo "You did not enter any information" else echo "Your name: ${name}" fi 保存 # chmod +x input.sh # ./input.sh 看效果. 18.文件拷贝 # vi filecopy.sh #!/bin/bash #file copy # 2>/dev/null 丢掉错误提示 if cp /etc/passwd passwd.ba

20、k 2>/dev/null then echo "Good Copy!" else echo "`basename $0`: error,could not copy" fi 保存 # chmod +x filecopy.sh # ./filecopy.sh 看效果. 19.case选择效果 # vi showcase.sh #!/bin/bash #case select echo -n "enter a number from 1 to 5:" read NUM case $NUM in

21、 1) echo "you select 1" ;; 2) echo "you select 2" ;; 3) echo "you select 3" ;; 4) echo "you select 4" ;; 5) echo "you select 5" ;; *) echo "basename $This is not between 1 and 5" esac 保存 # chmod +x showcase.sh # ./showcase.sh 看效果. 20.case选择效果 学生的考试成绩是0-10

22、0分,在85以上的要提示you are the best!,在70-84显示you get a good mark! ,在60-74的显示come on!,60分以下显示You must study hard! # vi showpoint.sh #!/bin/bash echo -n "please input your mark:" read mark case $mark in # 100、90-99、85-89 100|9[0-9]|8[5-9]) echo "you are the best!";; # 80-84、70-7

23、9 8[0-4]|7[0-9]) echo "you get a good mark!";; # 70-74、60-69 7[0-4]|6[0-9]) echo "come on!";; # 00-59 [0-5][0-9]) echo "You must study hard!";; esac 保存 # chmod +x showpoint.sh # ./showpoint.sh 看效果. 21.用echo显示颜色 # vi showcolors.sh #!/bin/bash

24、 T='gYw' # The test text echo echo "default 40m 41m 42m 43m 44m 45m 46m 47m" ## FGs 为前景(foreground), BG 为背景(background) for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' '1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' ' 36m' '1;36m' ' 37m' '1;37m' do FG=$(echo $

25、FGs|tr -d ' ') echo -en " $FGs \033[$FG $T " for BG in 40m 41m 42m 43m 44m 45m 46m 47m; do echo -en " \033[$FG\033[$BG $T \033[0m" done echo done echo 保存 # chmod +x showcolors.sh # ./showcolors.sh 看效果. 22.改变终端窗口的名称.这里使用了一个名为help的函数,该函数在脚本中使用了两次:

26、 vi xtitlebar.sh #!/bin/bash # vim: set sw=4 ts=4 et: help() { cat << HELP xtitlebar -- change the name of an xterm, gnome-terminal or kde konsole USAGE: xtitlebar [-h] "string_for_titelbar" OPTIONS: -h help text EXAMPLE: xtitlebar "cvs" HELP exit 0 } # in case of err

27、or or if -h is given we call the function help: [ -z "$1" ] && help [ "$1" = "-h" ] && help # send the escape sequence to change the xterm titelbar: echo -e "\033[40;35m$1\033[0m" 保存 # chmod +x xtitlebar.sh # ./xtitlebar.sh 看效果. 23.shift用法 # vi showshift.sh #!/bin/b

28、ash until [ $# -eq 0 ] do echo "第一个参数为: $1 参数个数为: $#" shift done 保存 # chmod +x showshift.sh # ./showshift.sh 1 2 3 4 第一个参数为: 1 参数个数为: 4 第一个参数为: 2 参数个数为: 3 第一个参数为: 3 参数个数为: 2 第一个参数为: 4 参数个数为: 1 看效果. 来源于网络,回归于网络. 我的邮箱:happy.every.day@ QQ:48399956

29、 快乐! 2010年9月30日 对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 回复次数:3 merryboy 等 级: #1楼 得分:0回复于:2010-09-30 16:22:0324.shift用法2 # vi showshift2.sh #!/bin/bash if [ $# -eq 0 ] then echo "Usage:x_shift2.sh 参数" exit 1 fi

30、 sum=0 until [ $# -eq 0 ] do sum=`expr $sum + $1` shift done echo "sum is: $sum" 保存 # chmod +x showshift2.sh # ./showshift2.sh 10 20 15 sum is: 45 看效果. 25.函数定义,调用 # vi showfunction.sh #!/bin/bash message() { echo "message" }

31、 let i=1 while [ $i -le 3 ] do message let i=$i+1 done 保存 # chmod +x showfunction.sh # ./showfunction.sh 看效果. 26.函数定义,调用,参数传递,这里主要实现数的乘方计算. # vi showfunction2.sh #!/bin/bash power() { x=$1 y=$2 count=1 result=1 while [

32、 $count -le $y ] do result=`expr $result \* $x` count=`expr $count + 1` done return $result } echo "Enter two numbers" read num1 num2 power $num1 $num2 answer=$? echo "$num1 to $num2 is $answer" 保存 # chmod +x showfunction2.sh # ./showfunction2.sh Enter two

33、 numbers 2 3 2 to 3 is 8 看效果. 27.函数定义,调用,参数传递,这里主要实现数的乘方计算,使用递归调用. # vi showfunction3.sh #!/bin/bash power() { x=$1 y=$2 if [ $y -eq 1 ] then return $x else y=`expr $y - 1` power $x $y result=`expr $? \* $x` return $result

34、 fi } echo "Enter two numbers" read num1 num2 power $num1 $num2 answer=$? echo "$num1 to $num2 is $answer" 保存 # chmod +x showfunction3.sh # ./showfunction3.sh Enter two numbers 3 2 3 to 2 is 9 看效果. 如果你输入 4 5看看结果是什么 Enter two numbers 4 5 4 to 5 is 0 为什么是0,

35、不是1024,我估计是计算溢出了. 28.局部变量全局变量的测试. 默认情况下,所有函数的变量都是全局变量.你可以用typeset去声明一个局部变量 # vi showfunction4.sh #!/bin/bash easy() { typeset a a=`expr 30 ` b=`expr 30 ` echo "easy a is " $a echo "easy b is " $b } a=10 b=20 easy $a $b echo "global a is " $a echo "glob

36、al b is " $b 保存 # chmod +x showfunction4.sh # ./showfunction4.sh easy a is 30 easy b is 30 global a is 10 global b is 30 看效果. 29.如果要在脚本中多次使用函数,可以把它放在一个函数目录中,像一个普通文件一样,使用的时候把它放在脚本开始的地方 模式: . functionfile ... 具体例子 # vi power.sh #!/bin/bash power() { x=$1

37、 y=$2 if [ $y -eq 1 ] then return $x else y=`expr $y - 1` power $x $y result=`expr $? \* $x` return $result fi } 保存 # vi showfunction5.sh #!/bin/bash . power.sh echo "Enter two numbers" read num1 num2 power $num1 $num2

38、answer=$? echo "$num1 to $num2 is $answer" 保存 # chmod +x power.sh # chmod +x showfunction5.sh # ./showfunction5.sh Enter two numbers 2 3 2 to 3 is 8 看效果. 30. 函数使用 # vi showfunction6.sh #!/bin/bash # file name "showfunction6.sh" function nihao() { echo

39、n "nice to meet you ! " } function mingzi() { echo "小桥流水人家" } function out(){ echo "即将退出..." echo "3秒后退出!" sleep 1 echo -n "." sleep 1 echo -n "." sleep 1 echo "." exit } nihao mingzi out 保存 # chmod

40、x showfunction6.sh # ./showfunction6.sh 看效果. 31.实现对输入参数的分析,但是下面的使用case表达式的例子无疑是一个不错的方法. # vi param.sh #!/bin/sh help() { cat << HELP This is a generic command line parser demo. USAGE EXAMPLE: cmdparser -l hello -f -- -somefile1 somefile2 HELP exit 0 }

41、 while [ -n "$1" ]; do case $1 in -h) help;shift 1;; # function help is called -f) opt_f=1;shift 1;; # variable opt_f is set -l) opt_l=$2;shift 2;; # -l takes an argument -> shift by 2 --) shift;break;; # end of options -*) echo "error: no such option $1. -h for help";exit

42、1;; *) break;; esac done echo "opt_f is $opt_f" echo "opt_l is $opt_l" echo "first arg is $1" echo "2nd arg is $2" 你可以这样运行该脚本: # chmod +x param.sh # ./param.sh -l hello -f -- -somefile1 somefile2 返回结果如下: opt_f is 1 opt_l is hello first arg is -somefile1

43、2nd arg is somefile2 这个脚本是如何工作的呢?脚本首先在所有输入命令行参数中进行循环,将输入参数与case表达式进行比较,如果匹配则设置一个变量并且移除该参数.根据unix系统的惯例,首先输入的应该是包含减号的参数. 32. DONE OK PASSED FAILED WARNING 的shell颜色控制显示(这个是参考 文档,自己摸索学会的) # vi colorbase.sh #!/bin/sh BOOTUP=color # 第一设置 BOOTUP 变量,默认就是 color RES_COL=6

44、0 # 第二设置设置在屏幕的第几列输出后面的 "[ xxx ]" ,默认是第60列 MOVE_TO_COL="echo -en \\033[${RES_COL}G" # MOVE_TO_COL 是用于打印 "OK" 或者 "FAILED" ,或者 "PASSED" ,或者 "WARNING" 之前的部分,不含 "[" SETCOLOR_SUCCESS="echo -en \\033[1;32m" # SETCOLOR_SUCCESS 设置后面的字体都为绿色 SETCOLOR_FAILURE="echo -en \\033[1;31m"

45、 # SETCOLOR_FAILURE 设置后面将要输出的字体都为红色 SETCOLOR_WARNING="echo -en \\033[1;33m" # SETCOLOR_WARNING 设置后面将要输出的字体都为黄色 SETCOLOR_NORMAL="echo -en \\033[0;39m" # SETCOLOR_NORMAL 设置后面输出的字体都为白色(默认) echo_success() { # 下面是 echo_success 部分 [ "$BOOTUP" = "color" ] && $MOVE_TO_COL #

46、首先是打印 "[" 之前的空格 echo -n "[" # 然后打印 "[" [ "$BOOTUP" = "color" ] && $SETCOLOR_SUCCESS # 设置字体为红色 echo -n $" OK " # 打印 OK [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL # 返回字体为白色 echo -n "]" # 打印 "]" echo -ne "\r" # 换行. return 0 # 返回 0,其他一

47、律返回 1 } echo_done() { # 下面是 echo_success 部分 [ "$BOOTUP" = "color" ] && $MOVE_TO_COL # 首先是打印 "[" 之前的空格 echo -n "[" # 然后打印 "[" [ "$BOOTUP" = "color" ] && $SETCOLOR_SUCCESS # 设置字体为红色 echo -n $" DONE " # 打印 DONE [ "$BOOTUP" = "color" ] && $SETCOLOR_

48、NORMAL # 返回字体为白色 echo -n "]" # 打印 "]" echo -ne "\r" # 换行. return 0 # 返回 0,其他一律返回 1 } echo_failure() { [ "$BOOTUP" = "color" ] && $MOVE_TO_COL echo -n "[" [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE echo -n $" FAILED " [ "$BOOTUP" = "col

49、or" ] && $SETCOLOR_NORMAL echo -n "]" echo -ne "\r" return 1 } echo_passed() { [ "$BOOTUP" = "color" ] && $MOVE_TO_COL echo -n "[" [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING echo -n $" PASSED " [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL echo -n "]" echo -ne "\r" return 1 } echo_warning() { [ "$BOOTUP" = "color" ] && $MOVE_TO_COL echo -n "[" [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING echo -n $" WARNING " [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服