测试相关shell命令总结2——结构控制语句,命令行参数
1,shell 中单引号和双引号的区别,单引号不进行解释。双引号进行解释
1,在shell中进行数学运算,放在$和[]中
$[1+2]
有些很奇怪,在.sh文件中放在(())中貌似也能够进行数学运算。
2,表示条件判断的 if... then ...fi(中间可以嵌套任意层的elfi)
()if中如果是命令,那么判断依据是命令的退出状态码,如果$?=;那么认定为真 ()如果想要使用和其他语言类似的条件判断,需要借助于test或者[ ] test表示判断 if test condition then ... fi []表死判断 if [ condition ] then ... fi;注意中括号中每一个前后都需要有空格 A.1数值比较 n1 -eq n2, n1 -ne n2; n1 -gt n2 , n1 -lt n2; n1 -ge n2, n1 -le n2; A.2字符串比较 str1=str2, str1!=str2; str1<str2,str1>str2; -n str, -z str
A.3文件比较 -d, -e, -f,-x,-w, -s file; file1 -nt file2,(file1 比file2新),file1 -ot file2(file1 比file2旧)
综上,检查对象是否非空的方式: 如果是变量,就使用 -z var 的方式 如果是文件,判断是否存在用-e,是否存在且非空使用-s
if 相关判断条件
复合条件判断:[] || []或者[] &&[]
(())可以用于数值判断
#!/bin/sh
var=
if (($var<=))
then
var=$[$var+]
((var=$var+))
echo $var
fi
双尖括号进行if数值比较
[[]]可以用于包含正则表达式的字符串判断,比如 if [[$user=r*]]
3,表示分支判断的case
格式是:
case variable in
patter1|patter2) commands;;
pattern3) commands;;
*)default commands;;
esac
4,for语句控制循环
4.1 列表循环
for var in list
do
commands
done
4.2 使用数值循环
方法一:
for ((i=;i<=;i+=))
do
commands
done
方法二
for i in `seq `
do
commands
done
shell下的for循环
5,while语句控制循环
while test或者[]表示的判断语句
do
done
6,until控制循环
和while语句相反,是判断语句不成立的时候才终止循环
7,跳出循环
break,continue,此外还有break n;continue n其中的n代表跳出几层循环
8,利用循环控制文件(循环重定向)
#!/bin/sh #利用shell 尝试循环控制文件 while read line
do
echo $line
done<a.txt
#!/bin/sh
for((i=;i<;i++))
do
echo $i
done>a.txt
将循环输出重定向到文件
#!/bin/sh
IFS_OLD=$IFS
IFS=$'\n'
for line in `cat a.txt`
do
echo $line
IFS=:
for word in $line
do
echo $word
done
done
IFS=$IFS_OLD
列表循环更改分隔符IFS
9,shell中的命令行参数
在shell中,
$0代表脚本名称
$#代表参数个数
$-$9代表传入的各个参数
如果超过9需要用${}这样的形式
${!#}代表最后一个参数,{}中不能出现$
shift可以移动参数
shell脚本内置参数
测试相关shell命令总结2——结构控制语句,命令行参数的更多相关文章
- shell命令分隔符 二叉树结构的命令行树
shell命令分隔符 二叉树结构的命令行树 I ;&
- bash shell笔记3 结构化命令二
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/513601 三 ...
- bash shell笔记2 结构化命令
二.使用结构化命令 知识内容: # 改变命令流 # 使用if-then逻辑 # 嵌套if-then # 测试条件 # 高级if-then功能 许多程序在脚本命令之间需要某些逻辑控制流,有些命令允许脚本 ...
- shell脚本编程-使用结构化命令(if/else)(转)
11.1 使用if-then语句 格式如下 if语句会执行if行定义的那个命令,如果该命令的退出状态码是0,则then部分的语句就会执行,其他值,则不会 1 2 3 4 if command th ...
- linux shell脚本使用结构化命令
内容: 一.if-then命令 二.if-then-else命令 三.test命令 四.case命令 1.if-then结构化命令中最基本的类型,其格式如下: if command then comm ...
- shell的结构化命令
shell在逻辑流程控制这里会根据设置的变量值的条件或其他命令的结果跳过一些命令或者循环执行的这些命令.这些命令通常称为结构化命令 1.if-then语句介绍 基本格式 if command then ...
- Shell基础(二):Shell中的数值运算、条件测试操作、使用if选择结构
一.Shell中的数值运算 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 使用expr.$[ ].let等整数运算工具:定义变量X=1234,然后计算X与78 ...
- 《Linux命令行与shell脚本编程大全》第十二章 使用结构化命令
许多程序要就对shell脚本中的命令施加一些逻辑控制流程. 结构化命令允许你改变程序执行的顺序.不一定是依次进行的 12.1 使用if-then语句 如下格式: if command then ...
- Shell 语法之结构化命令(流程控制)
许多程序在脚本命令之间需要某种逻辑流控制,允许脚本根据变量值的条件或者其他命令的结果路过一些命令或者循环执行这些命令.这些命令通常被称为结构化命令.和其他高级程序设计语言一样,shell提供了用来控制 ...
随机推荐
- hdu3829 二分匹配 最大独立集
Cat VS Dog Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others) Problem ...
- 项目常用的几个mysql函数
1.find_in_set函数 find_in_set(str,strlist); str是一个字符串 strlist是字符串列表--一个有多个子链被“,”分开的字符串 有多种情况: a.str为nu ...
- Jquery复习(八)之遍历
jQuery 遍历 - 祖先 parent() parents() parentsUntil() jQuery parent() 方法 parent() 方法返回被选元素的直接父元素. 该方法只会向上 ...
- js自执行函数
5.1对于函数表达式,在后面加括号即可以让函数立即执行:例如下面这个函数,至于为什么加了括号就可以立即执行,我们可以这么理解,就是像fn1():这样写的话,函数 可以立即执行是没问题的,我们在经常会用 ...
- 7.利用canvas和js画一个渐变的
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 10分钟,让你彻底明白Promise原理
什么是Promise?本代码用定外卖来举例子,让你明白. // 定外卖就是一个Promise,Promist的意思就是承诺// 我们定完外卖,饭不会立即到我们手中// 这时候我们和商家就要达成一个承诺 ...
- NSUserDefaults的用法
NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults是首选.下次再登陆的时候就可以直接从NSUserDefa ...
- iOS-NSLog发布时取消打印日志
1 选择工程的Target -> Build Settings -> Preprocessor Macros. 如图,默认 Debug项,是“DEBUG=1”. 2 在程序中设置全局宏定义 ...
- 下载 Eclipse 免安装版~
进入https://www.eclipse.org/downloads/
- .htaccess A网站单页面301到B网站单页面
.htaccess 301问题 A网站 a.com/a.html 301到 B网站 b.com/b.html RewriteRule ^a.com/a.html$ http://www.b. ...