关闭

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

775人阅读 评论(0) 收藏 举报
分类:

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 检测该文件是否存在且为“非空白文件”


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

白盒测试中几种覆盖的区别

比较常用的逻辑覆盖测试方法有:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖。 基本路径测试:在程序控制图的基础上,通过分析控制构造的环行复杂性,导出基本可执行路径集合,从...
  • kongqwesd12
  • kongqwesd12
  • 2016-05-05 11:16
  • 1416

Shell脚本学习之逻辑判断

Shell脚本的if语句、循环语句中都会有一个逻辑判断式。逻辑判断式用于各种条件的判断,除非程序是流水账,否则是一定会用到逻辑判断的,可见其重要性。 Shell的逻辑判断,我目前所知共有两种: 1...
  • wang1902568721
  • wang1902568721
  • 2015-07-17 10:27
  • 1650

什么是运算符?C++中算数运算符、关系运算符、逻辑运算符等常用运算符讲解

转自 http://edu.cnzz.cn/201512/98757d76.shtml 运算符是指用于在操作数上执行某种操作的符号,也就是参与运算的符号,如+(加法运算符)、-(减法运算符)等。运算...
  • kingvon_liwei
  • kingvon_liwei
  • 2017-03-25 15:12
  • 2217

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

  • 2016-08-15 23:46
  • 104KB
  • 下载

逻辑关系模拟程序 Visual Prolog

  • 2011-03-08 10:48
  • 6KB
  • 下载

中介者模式逻辑关系

  • 2016-01-03 09:38
  • 135KB
  • 下载

拼色逻辑关系精美图表

  • 2013-11-22 08:11
  • 268KB
  • 下载

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

  • 2011-09-13 16:13
  • 395KB
  • 下载

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

  • 2015-12-30 17:37
  • 3.07MB
  • 下载

笨方法学Python 习题 27: 记住逻辑关系

逻辑术语 在 python 中我们会用到下面的术语(字符或者词汇)来定义事物的真(True)或者假(False)。计算机的逻辑就是在程序的某个位置检查这些字符或者变量组合在一起表达的结果是真是假。 a...
  • u011692485
  • u011692485
  • 2017-08-03 14:07
  • 138
    个人资料
    • 访问:131131次
    • 积分:2649
    • 等级:
    • 排名:第15854名
    • 原创:139篇
    • 转载:13篇
    • 译文:0篇
    • 评论:27条
    个人简介
    博客专栏
    文章分类