博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell script
阅读量:6914 次
发布时间:2019-06-27

本文共 2075 字,大约阅读时间需要 6 分钟。

shell script

是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将shell的语法和指令写在里面搭配正规表达式、管道命令和数据流重导向等功能,以达到我们所想要处理的目的。

注意事项:

  • 指令的执行是从上而下、从左而右的分析与执行
  • 指令、选项与参数间的空格都会被忽悠掉
  • 空白行也将被忽略掉,并且[tab]按键所推开的空白同样被忽悠
  • 如果读取到一个Enter字符,就尝试开始执行命令
  • [#]可做为批注!任何加在#后面的资料将全部视为批注文字被忽略

如何执行脚本

  • 直接指令下达:shell文件必须要具有可读和可执行的文件

    绝对路径: 相对路径:假设在工作目录内,可以直接使用./shell.sh来执行 变量[PATH]功能:将shell.sh放在PATH的指定目录内。如~/bin/

  • 以bash程序来执行:透过[bash shell.sh]或[sh shell.sh]

  • 用source来执行,在父进程中执行

说明script的1.内容与功能 2.版本信息 3.作者与联系方式 4.建档日期 5,历史记录等等

利用test命令测试功能

-e 文件名是否存在 -f该文件名是否存在且为文件 -d该文件名是否为存在且为目录 -r该文件名是否存在且可读 -w该文件名是否存在且可写 -x该文件名是否存在且可执行 -s该文件名是否存在且为非空白文件 -ef判断file1与file2是否为同一文件 -z string 判断字符是否为空字符,若是,则为真 !反向状态

利用判断符号[]

中括号[]的两端需要有空白符来分隔;在中括号内的变量,最好都以双引号括起来;在中括号的常量,最好以单或双引号括起来

shell script的默认变量

$#:代表后面接的参数个数

$@:代表“$1"、"$2"、"$3"之意,每个变量都是独立

$*:代表“$1c$2c$3c$4”,其中c为分隔符,默认为空格

shift:造成变量号码偏移 ##条件判断式 if...then

if[条件判断式];then当条件判断成立时,可以进行的命令工作内容fi  结束复制代码

一个条件的判断

if[条件判断式];then当条件判断成立时,可以进行的命令工作内容else当条件不成立时,可以进行的命令工作内容fi  结束复制代码

多个条件的判断

if[条件判断1];then当条件判断1成立时,可以进行的命令工作elif[条件判断2];then当条件判断2成立时,可以进行的命令工作else当条件1与条件2都不成立时,可以进行的命令内容fi  结束复制代码

netstat -tuln取得目前主机有启动的服务

几个常见的port与相关网络服务的关系是

80:www

22:ssh

21:ftp

25:mail

111:RPC(远程打印调用)

631:CUPS(打印服务功能)

##利用case...esac判断

case \$变量名称 in   <==关键字为case,还有变量前有$"第一个变量内容")   <==每个变量内容建议用双括号括起来,关键字则为小括号    程序段    ;;              <==每个类型结尾使用两个连续的分号来处理"第二个变量内容")    程序段    ;;*)                 <==最后一个变量内容都会\*代表所有其他值  不包含第一个变量与第二个变量内容的其它程序执行段  exit  1   ;;esac复制代码

##利用function功能,函数功能

function fname  ()  {   程序段}复制代码

##loop循环 不定循环

while do done

while  [ condition ] <==判断式do                   <==do 是循环的开始    程序段落done                <==done 是循环的结束复制代码

until do done

until  [ condition ]do  程序段落done复制代码

固定循环 for do done

for var in con1 con2 con3...do   程序段done复制代码

第一次循环时,$var的内容为con1;

第二次循环时,$var的内容为con2;

第三次循环时,$var的内容为con3;

...

for...do...done的数值处理

for((初始值;限制值;执行步长))do    程序段done 复制代码

初始值:某个变量在循环当中的初始值,直接以类似i=1设置好

限制值:当变量的值在这个限制值的范围内,就继续进行循环,例如i<=100

执行步长:每做一次循环时的变化量。例如i=i+1

##shell script的追踪与调试

sh [-nvx] scripts.sh参数:-n:不要执行script,仅查询语法的问题;-v:在执行script前,先将script的内容输出到屏幕上-x:将使用到的script内容显示到屏幕上复制代码

转载地址:http://hiacl.baihongyu.com/

你可能感兴趣的文章
基于Eclipse的Hadoop应用开发环境配置
查看>>
分布式搜索方案选型
查看>>
Lync Server 2010的部署系列_第十九章 配置 Lync 2010 技能搜索
查看>>
我的友情链接
查看>>
RDS2016 Multipoint Role
查看>>
正则表达式口诀
查看>>
Linux 学习笔记_5_Linux引导流程解析_2_inittab文件剖析及系统启动流程分析
查看>>
Linux网络编程基础_2_物理层
查看>>
我的友情链接
查看>>
freebsd开启root远程登录服务器的操作
查看>>
未清销售订单及预测的所有工序物料需求(按BOM展开.考虑已发料)
查看>>
存储过程优点和缺点
查看>>
2.0、Android Studio编写你的应用
查看>>
面向对象……未完待续
查看>>
ChemDraw加键的两种方法
查看>>
CentOS 5.5升级网卡驱动
查看>>
动手动脑五
查看>>
PHP使用GOEASY实现WEB实时推送
查看>>
MapInfo格式转arggis格式
查看>>
Python学习路线(针对具备一定编程经验者)
查看>>