Sheel 脚本 基本语句及逻辑关系比较

原创 2016年05月31日 20:55:19

Linux下的Sheel脚本编写比较重视格式。


1.sheel 的编写,每个文件第一行开头需要加上 #!/bin/bash

不该有的空格绝对不能加,否则就会出错。

表示变量内容时,需要加上$,如:s=1,需要用到s的数值时,需要写成$s。



2.利用判断符号   [  ]

判断符号有着严格的格式,空格不能够省略,空格的位置如下(□代表空格)

[□条件□==□条件□]

中间可以是等号也可以是其他比较符号



3.sheel脚本的默认变量。

sehll脚本的文件名字就是 $0 ,在执行该脚本的时候后面跟的参数依次为:$1 $2 $3 ......

$#:代表后接的参数“个数”

$@:代表"$1"、"$2"、"$3",每个变量是独立的(用双引号括起来)

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



4.shift 造成参数变量号码偏移

shift 默认偏移一个 ,shift 后也可以接数字, 即出现shift 语句后,变量会去掉前面相对应数字个数的变量。

如 原来变量为 1 2 3 4 5 6 ,出现shift后变成 2 3 4 5 6 ,再出现shift 3 后 ,变成 5 6



5.if...then 

if [条件判断式];then
    条件成立时执行的句子
fi  反过来写,结束的意思
注意:利用[ ]  写条件判断式的时候需要注意空格不能省略。

if...else

if [条件判断式];then
    成立时执行语句
else
    条件不成立时执行语句
fi  fi不可省略


if...elif...else

if [条件判断式1];then
    语句1
elif [条件判断式2];then
    语句2
else
    语句3
fi




6.case....esac

多重判断选择

case $变量名称 in
"第一个变量内容")
    执行语句
    ;;
"第二个变量内容")
    执行语句
    ;;
esac




7.function

function 名字(){
      执行语句
}

函数在执行时,也可以后面跟上参数,而这时在函数里面的$#,$@,$*之类的就是后面所跟的参数。



8.for...do...done

for var in con1 con2 con3...
do
    执行语句
done


var的数值依次为con1 con2 con3



9.for...do...done的另一个写法

for ((初始值;限制值;步进值))
do
    执行语句
done
例:计算1+2+。。。

#!bin/bash

s=0<span style="white-space:pre">	</span>#s赋初始值,不能有空格
read -p "input number:" x     #x前面有一个空格
for ((i=1;i<=$x;i=i+1))
do
        s=$(($s+$i))<span style="white-space:pre">		</span>#$(())格式应该是这样
done
echo "$s"



10.for do done,until do done

for do done

while [条件判断式]
do
    执行语句
done    结束语句

until do done

until [条件判断式]
do
    执行语句
done    结束语句



11.shell的追踪与调试

sh 后加参数 能够进行调试

-n:不用执行脚本,仅查询语句的问题

-v:再执行脚本前,先将脚本的内容输出的屏幕上

-x:将使用到的脚本内容显示到屏幕上


12.两个整数之间的判定

例如:test n1 -eq n2

-eq 两数值相等(equal)

-ne 两数值不能(not equal)

-gt n1大于n2(greater than)

-lt n1小于n2(less than)

-ge n1大于等于n2(greater than or equal)

-le n1小于等于n2(less than or equal)


13.文件的判断

1.关于文件名的“文件类型”判断

例如:test -e filename(满足条件为真,反之为假)

-e 该文件名是否存在

-f 该文件名是否存在且为文件

-d 该文件名是否存在且为目录

2.关于文件的权限检测

-r 检测该文件是否存在且具有“可读”的权限

-w 检测该文件是否存在且具有“可写”的权限

-x 检测该文件是否存在且具有“可执行”的权限

-u 检测该文件是否存在且具有“SUID”的属性

-g 检测该文件是否存在且具有“SGID”的属性

-k 检测该文件是否存在且具有“Sticky bit”的属性

-s 检测该文件是否存在且为“非空白文件”


版权声明:本文为博主原创文章,转载请标明出处:http://blog.csdn.net/leafage_m

相关文章推荐

操作和辅助指针变量逻辑关系

  • 2016年08月15日 23:46
  • 104KB
  • 下载

逻辑关系模拟程序 Visual Prolog

  • 2011年03月08日 10:48
  • 6KB
  • 下载

Exercise 27: 熟记逻辑关系

原文链接:http://learnpythonthehardway.org/book/ex27.html        今天我们将开始学习关于逻辑关系方面的知识。到目前为止你应该已经完成了前面的所有练...

中介者模式逻辑关系

  • 2016年01月03日 09:38
  • 135KB
  • 下载

拼色逻辑关系精美图表

  • 2013年11月22日 08:11
  • 268KB
  • 下载

开发框架——横版格斗——6.技能播放的逻辑关系

6.技能播放的逻辑关系 技能播放概述: 当完成对技能输入与检测之后,程序就该对输入在缓存器中的按键操作与程序读取的技能表信息进行匹配,根据匹配结果播放相应的连招技能。 技能播放原理:...

登陆界面,及两个界面的逻辑关系

  • 2015年12月30日 17:37
  • 3.07MB
  • 下载

ATG 产品各组件逻辑关系图.pdf

  • 2011年09月13日 16:13
  • 395KB
  • 下载

Cuda 学习教程四:GPU和Cuda逻辑关系

工欲善其事必先利其器,再次补充下GPU和Cuda之间的逻辑对应关系: 每个SM中有大量的寄存器资源,可以养活成千上万的线程。SM中另外一个重要资源是Shared Memory,没错,它正是软件抽象中...

WM_CLOSE / WM_DESTROY / WM_QUIT 几个消息的逻辑关系

http://www.rupeng.com/innersupesite/index.php/1282/viewspace-688   WM_DESTROY 是关闭程序的 WM_CLOSE 是...
  • anypkv
  • anypkv
  • 2012年03月02日 20:30
  • 278
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Sheel 脚本 基本语句及逻辑关系比较
举报原因:
原因补充:

(最多只允许输入30个字)