Linux中shell scripts

▲shell脚本

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

shell script可以用来追踪与管理系统的重要工作,简单入侵侦测功能,建议的数据处理

?

在shell script中需要注意的事项

  1. 指令与参数间的多个空白会被忽略掉
  2. 空白行和tab也将被忽略掉
  3. 如果读到一个Enter符号(CR),就尝试开始执行该命令
  4. 如果一行的内容太多,可以使用\[Enter]来延伸至下一行
  5. 任何加在#后面的字,将全部视为批注文字而被忽略

?

如何执行.sh脚本文件

  1. 将shell.sh加上可读与执行权限,以./shell.sh来执行
  2. 直接以sh shell.sh的方式来直接执行。sh是bash的软连接。

?

sh [-nvx] scripts.sh

????参数-n????????不要执行script,仅查询语法的问题

????参数-v????????在执行script前,先将script的内容输出到屏幕上

????参数-x????????将使用到的script内容显示到屏幕上

?

编写脚本时需要添加的代码:

????功能,版本信息,作者与联络方式,版权声明方式,历史记录,较特殊的命令使用绝对路径的方式来下达,声明与设置脚本运行时需要的环境变量

?

例如编写一个打印hello world的脚本,代码如下:


#!/bin/bash

#Program:

# this scripts is used to print hello world

#History: 2015-1-26 youname first release

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

export PATH

?

echo "hello world"

exit 0

?

▲test判断

关于某个文件名的判断(存在与否)

????test –[bcedfpSL] filename

关于档案的权限侦测

????test –[rwxugks] filename

两个档案之间的比较

????test file1 –[nt,ot,ef] file2

????????-nt????newer than

????????-ot????older than

????????-ef????file1与file2是否为同一档案,可用在hard link的判定上

两个整数之间的判定

????test n1 –[eq,ne,gt,lt,ge,le] n2

????????-eq????equal

????????-ne????not equal

????????-gt????greater than

????????-lt????less than

????????-ge????greater than or equal

????????-le????less than or equal

判定字符串的数据

????test –z string????????若string为空(null),则为true

????test –n string????????若string非空,则为true

????test str1 = str2????????若相等,回传true

????test str1 != str2????若不等,回传true

多重条件判定

????参数-a(and,两状况同时成立)

????参数-o(or,任何一个成立)

????参数!(反相状态)

?

判断符号[]

????将判断特征和被判断对象放入中括号中,不需要test了

?

▲if判断语句

????if [条件判断式]; then????????fi结束

????if [条件判断式]; then else????fi结束

????if [条件判断式1];then elif[条件判断式2];then else????fi结束

?

▲case…esac判断

?

▲function功能

格式如下:

????function fname()

????{

????程序段

}

?

function的设定一定要在程序的最前面

拥有内建变量,$0表示函数名称,后续接的变量标记为$1,$2…

?

▲循环控制

while循环:????当condition成立时,开始循环

while [condition]

do

????程序段落

done

?

until循环:????当condition成立时,终止循环

until [condition]

do

????程序段落

done

?

▲for循环

格式1:

for ((初始值;限制值;步长))

do

????程序段

done

?

格式2:

for var in con1 con2 con3…

do

????程序段

done

时间: 2025-01-02 04:10:37

Linux中shell scripts的相关文章

linux中shell变量$#,[email protected],$0,$1,$2的含义解释

摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,[email protected],$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表.如"$*"用「"」括起来的情况.以&qu

linux中shell脚本的学习(一)

linux中shell是一个特殊的应用程序.它介于系统的内核与用户之间.充当命令"解释器"的作用角色.负责接收用户输入的操作指令,并进行解释.将需要执行的操作传递给内核.并输出执行结果: 下面我们来看一下当前系统所支持的shell的种类: 其中/bin/shell 是目前大多数linux中采用的默认shell.我们主要学习bash. 我们来写第一个脚本文件用作测试. vim first.sh cd /boot/ pwd ls -lh * chmod +x first.sh shell脚

Linux中shell变量$0,$?等含义

linux中shell变量$#,[email protected],$0,$1,$2的基本含义: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表.如"$*"用「"」括起来的情况.以"$1 $2 … $n"的形式输出所有参数. [email protected] 所有参数列表.如"

【Shell】linux中shell变量$#,[email protected],$0,$1,$2的含义解释 && set 关键字使用

linux中shell变量$#,[email protected],$0,$1,$2的含义解释 摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,[email protected],$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定

【转】linux中shell变量$#,[email protected],$0,$1,$2的含义解释

原文网址:http://www.cnblogs.com/fhefh/archive/2011/04/15/2017613.html linux中shell变量$#,[email protected],$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表.如"$*"用「"」括起来的情况

linux中shell变量$#,[email protected],$0,$1,$2的含义

#!/bin/bash #Created by ley on 2014-11-14 #Testing the Paramters echo  "The compleate list is %s\n" "$$" echo  "The compleate list is %s\n" "$!" echo  "The compleate list is %s\n" "$?" echo  &quo

Linux中shell变量的含义

$# 是传给脚本的参数个数  $0 是脚本本身的名字 $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 [email protected] 是传给脚本的所有参数的列表 $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个 $$ 是脚本运行的当前进程ID号 $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误 Linux中shell变量的含义

浅谈linux中shell变量$#,[email protected],$0,$1,$2,$?的含义解释

浅谈linux中shell变量$#,[email protected],$0,$1,$2,$?的含义解释 下面小编就为大家带来一篇浅谈linux中shell变量$#,[email protected],$0,$1,$2的含义解释.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,[email protected],$

linux中shell编程

shell编程 1 echo -e 识别\转义符 \a \b \t \n \x十六进制 \0八进制 等等 #!/bin/bash echo -e "hello world" 执行脚本:方式1 :chmod 755 hello.sh ./hello.sh 方式2 :bash ./hello.sh(这种方式不需要给执行权限) 1 历史命令 history 直接回车就可以看到已经敲过得命令.-c清空缓存中和文件中的命令 -w将缓存中命令写入 家目录/.bash_history 这个命令可以帮