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——结构控制语句,命令行参数的更多相关文章

  1. shell命令分隔符 二叉树结构的命令行树

    shell命令分隔符 二叉树结构的命令行树 I  ;&

  2. bash&nbsp;shell笔记3&nbsp;结构化命令二

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/513601 三 ...

  3. bash&nbsp;shell笔记2&nbsp;结构化命令

    二.使用结构化命令 知识内容: # 改变命令流 # 使用if-then逻辑 # 嵌套if-then # 测试条件 # 高级if-then功能 许多程序在脚本命令之间需要某些逻辑控制流,有些命令允许脚本 ...

  4. shell脚本编程-使用结构化命令(if/else)(转)

    11.1 使用if-then语句 格式如下 if语句会执行if行定义的那个命令,如果该命令的退出状态码是0,则then部分的语句就会执行,其他值,则不会   1 2 3 4 if command th ...

  5. linux shell脚本使用结构化命令

    内容: 一.if-then命令 二.if-then-else命令 三.test命令 四.case命令 1.if-then结构化命令中最基本的类型,其格式如下: if command then comm ...

  6. shell的结构化命令

    shell在逻辑流程控制这里会根据设置的变量值的条件或其他命令的结果跳过一些命令或者循环执行的这些命令.这些命令通常称为结构化命令 1.if-then语句介绍 基本格式 if command then ...

  7. Shell基础(二):Shell中的数值运算、条件测试操作、使用if选择结构

    一.Shell中的数值运算 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 使用expr.$[ ].let等整数运算工具:定义变量X=1234,然后计算X与78 ...

  8. 《Linux命令行与shell脚本编程大全》第十二章 使用结构化命令

    许多程序要就对shell脚本中的命令施加一些逻辑控制流程. 结构化命令允许你改变程序执行的顺序.不一定是依次进行的 12.1 使用if-then语句 如下格式: if command then     ...

  9. Shell 语法之结构化命令(流程控制)

    许多程序在脚本命令之间需要某种逻辑流控制,允许脚本根据变量值的条件或者其他命令的结果路过一些命令或者循环执行这些命令.这些命令通常被称为结构化命令.和其他高级程序设计语言一样,shell提供了用来控制 ...

随机推荐

  1. 360度3D 旋转插件

    Circlr插件是一款基于jQuery的可以对图片进行360度全方位旋转展示的插件.Circlr通过按一定角度规律拍摄的产品图片,制作出可以使用鼠标拖动.鼠标滚轮和移动触摸来进行图片逐帧旋转的效果.比 ...

  2. centos7 下网卡的配置

    一般通过修改配置文件的方式去修改: 网卡配置文件位置    /etc/sysconfig/network-scripts/ifcfg-ens33 DNS配置文件位置              /etc ...

  3. python-day25(正式学习)

    目录 组合 多态 多态性 好处 封装 两个层面 property 组合 组合就是一个类的对象具备某一个属性,该属性的值是指向另外外一个类的对象 组合是用来解决类与类之间代码冗余的问题 首先我们先写一个 ...

  4. Tensorflow API 学习(1)-tf.slice()

    slice()函数原型为: tf.slice(input_, begin, size, name=None) 函数有4个参数: 1,input_ :图片的矩阵输入格式. 2,begin :开始截取的位 ...

  5. 【转】golang 交叉编译

    问题 golang如何在一个平台编译另外一个平台可以执行的文件.比如在mac上编译Windows和linux可以执行的文件.那么我们的问题就设定成:如何在mac上编译64位linux的可执行文件. 解 ...

  6. node端口被占用

    Error: listen EADDRINUSE :::8000 at Object._errnoException (util.js:992:11) at _exceptionWithHostPor ...

  7. 【抓包工具】使用Fiddler关于“由于目标计算机积极拒绝,无法连接。”的解决方案

    今天使用Fiddler的时候遇到下面这个问题:在地址栏想打开个一般处理程序,出现连接本机失败的提示,如下图: 而这在我没打开Fiddler的时候是显示正常的. 查看Fiddler,在嗅探 -> ...

  8. 使用CXF开发WebService程序的总结(四):基于bean的客户端和服务端代码的编写

    1. 在原服务端项目 ws_server中添加两个bean 1.1 添加两个类  User 和 Clazz   package com.lonely.pojo; public class User { ...

  9. python编码环境安装与基本语法

    一.pycharm的基本使用 1.python以及pycharm的安装 python的版本选择:3.x版本就行 pycharm的版本选择:社区版就够用 pycharm只是一个编写工具,python才是 ...

  10. 实践周java基础软件开发app之五子棋

    五子棋人机对战实践项目 总的任务和目标 完成一个人机对战的五子棋项目,基本效果如下: 第一部分 Java绘图原理 1.   基本概念 像素,坐标 第二部分 绘制棋盘 1.   基本思路 在一个JPan ...