万事开头难!加油!centrify.blog.chinaunix.net
centrify
精通测试技术,linux,shell,性能测试
全部博文(246)
jmeter(1)
postman学习(2)
Excel VBA(0)
Word(0)
Excel(1)
docker(1)
信创系统(1)
Ubuntu(1)
FreeBSD(0)
linux(8)
solaris(2)
hpux(2)
aix(6)
Expect(0)
系统学习TCL脚本(12)
系统学习perl脚本(4)
tkinter(2)
DosScripts(1)
windows7/8(3)
windows xp(2)
Hyper-V(1)
Mircosoft office(2)
Active directory(8)
Service 2k8 R2(9)
NIS/NIS++(2)
VM(0)
VNC(0)
network(4)
stress test(2)
sco unixware(1)
ssh/telnet(17)
openldap(3)
2024年(3)
2023年(7)
2022年(7)
2021年(4)
2020年(1)
2019年(2)
2017年(2)
2016年(3)
2015年(11)
2014年(20)
2013年(10)
2012年(176)
Victorzd
JameFu
RHCE520
liu_shua
wxpokay
wwwzyf
w1_xiao
yahoon
20060502
gaokeke1
piyazi
ruojie00
rajonpz
dingjun1
丸喵喵
JIA09118
Hansen何
分类:
2012-07-10 22:37:24
原文地址:介绍B-SHELL的一些运用方法 作者:tianwaitian666
前言:
这 里只介绍B-SHELL的一些运用方法,不对B-SHELL的基本知识进行说明(与其他的语言有很多的共性,果你懂一种语言的话,很快就能上手),如你是 对B-SHELL不是很了解的话,而且又想学的话,建议你去查阅相关的资料(网上有很多关于这方面的东东;当然也可买些书;如果你是一个借别人的书才能阅 读的人,那就去借吧!我就是这样的人之一。)。我的能力有限,若有不足或错误,请多多指教,小弟将感激不尽!所有的介绍适合于内核2.2.13的及以上的 liunx环境。
B-SHELL是一个便捷的开发工具,在紧急情况下要实现产品的某一功能,而用C 语言不能很快完成,则可选择B-SHLL实现,日后再用C语言完成;在产品里对于那些不常运行的程序可用B-SHELL替代,这样可以避免因对C语言使用 不当而带来的不良后果;对于一些处理量不大的程序可用B-SHELL实现。
讨论:
#!/bin/sh à B-SHELL的解释器标志
ALL=$@
#{
B-SHELL中带”$”的变量的说明:$0à SHELL命令本身
$nà 位置参数n(n != 0)
$@à 所有的输入变量
$$à 当前进程号
$!à 最近后台进程的PID值
$?à 最近命令执行状态的返回值
$#à 参数的个数
}#
declare -x TIME=0
变量声明的说明:
declare -x NUMBEROFFILE=0
关于脚本函数说明:
定义方式:function 函数名() 或 函数名()
{
函数体(作你想要作的事)
}
调用方式:函数名 参数列
在脚本里函数的调用就象调用命令一样使用。à 后面将会提到
function hel_ver() à 显示帮助信息或版本号
if [ "$1" = "-h" ] ;then
echo "fstrf -v :show version of shell script."
echo "Usages : fstrf -h||-v "
echo " fstrf ARGUMENTS DIRECTORY STRING || fstrf ARGUMENTS STRING "
echo " For more informations run man fstrf."
exit
fi
if [ "$1" = "-v" ] || [ "$1" = "version" ];then
echo "fstrf version 1.0.1 2001/07/05."
function find_offer() à 在给定的目录下查找是否有包含指定字串的文件,并显示其路径
for file in `ls "$1"` à for var in command do ………done 的一个典型运用;对$1目录下的目录或文件进行处理
do
if [ -d "$1"/$file ];then à 判断$file是否为目录
continue
else
string=`grep "$2" "$1"/$file ` à 查找字串
if [ -n "$string" ];then à 判断字串为非空
echo $string > /str
str=`awk '{print $1 }' /str` à 取得str 的第一域值
rm /str
if [ "$str" != "Binary" ];then à 剔除二进制文件
NUMBEROFFILE=`expr $NUMBEROFFILE 1 ` à 相当于C语言的NUMBEROFFILE =1;可用
let ‘ NUMBEROFFILE=NUMBEROFFILE 1‘替换
TIME=`expr $TIME 1`
echo "$1/$file" à 显示匹配文件
done
#else
function find_curr() à 在当前目录下查找是否有包含指定字串的文件,并显示其路径(相对路径)实现机制与find_offer相同
# if [ "$#" -eq "1" ];then à
for file in `ls ./` 如果只输入一个参数,则查找当前工作目录下的文件
if [ -d "$file" ];then
string=`grep "$1" $file`
if [ -n "$string" ];then
str=`awk '{print $1 }' /str`
if [ "$str" != "Binary" ];then
NUMBEROFFILE=`expr $NUMBEROFFILE 1 `
echo "./$file"
function print_num() à 显示查找的文件数 (在查多级目录时未能实现,如果你知道,告诉我,我会很高兴的!)
if [ "$NUMBEROFFILE" -gt "0" ] ;then
# echo ""
if [ "$#" -eq "1" ];then
关于彩色显示的说明:
不同的linux系统,运行的命令的方式都不一样。在LINUX/BSD系统中:echo -e “\033[40;32m”;在V系统中:echo “\033[40;32m”。本例中采用前一种方式。40位为背景色,取值40
上一篇:shell脚本学习小结
下一篇:在Windows上远程运行Linux程序
登录 注册