Shell脚本例子集合
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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