Shell脚本例子集合

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

# 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.

这样就有中文显示了.

1.写一个脚本,执行后,打印一行提示"Please input a

number:",要求用户输入数值,然后打印出该数值,然后再次要求用户输入数值.直到用户输入"end"停止. # vi show_var.sh

脚本内容:

#!/bin/bash

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

命令保存后退出,并执行:

# 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 $*

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

脚本内容:

#!/bin/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.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.tar.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

保存

# chmod +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

看效果.

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

相关文档
最新文档