判断符号【】类似于test。但是【】有通配符及正则表达式,为了区分,利用【】来做判断时,前后都需要加空格来区分。又一个坑

【 -z "$HOME" 】;echo $?

例:

1 read -p "Please input (y/n):" yn
2 [ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK,continue" && exit 0
3 [ "$yn" == "N" -o "$yn" == "n" ] && echo "Oh,interrupt" && exit 0
4 echo "i donnot know what your choice is " && exit 0
有几个要点。[]一定要加空格。这是必须的。 “$yn” == "Y" 也一定要加空格,否则只会打印 OK,continue。也就是说,没事加个空格没毛病。但是不要加空格的时候,千万不要加空格,上篇博客就是个例子。。。。这个坑一定要填实了。要不然,问题都找不到原因出在哪。

还有[]跟test完全是一样的,所以test那些判断啊什么的特殊控制,在这都可以用。例如上图例子中的-o。这个就是连接两个前后表达式任何一个成立都执行的意思,说白了就是  “或”

Shell script 的默认变数 ($0,$1...)

什么意思。意思就是某个shell script的先后执行某命令的顺序。图例

file /etc/init.d/network

/etc/init.d/network restart 这个后面跟着的restart就是命令,关键是,restart后面还可以跟很多命令,1 2 3 。。。script达成这个功能其实就是对参数设定好了一些变量的名称了。如下图

所以太才会依次执行,除了这些数字变量之外,我们还有一些比较特殊的变量来呼叫这些参数,如下图

例:

1 echo "The script name is ==> ${0}"
2 echo "total parameter number is ==> $#"
3 [ "$#" -lt 2 ] && echo "The number of parameter is less than 2. stop here."& & exit 0
4 echo "your whole parameter is ==>'$@'"
5 echo "the 1st parameter ==>${1}"
6 echo "the 2nd parameter ==>${2}"
执行结果如下

shift  参数偏移

shift+数字,代表你要拿掉的参数的数量。从第一个参数开始。这个到底有啥用???百度一下,查了一大顿,都是一堆shift的用法云云,至于意义和作用,压根就没有,如果有人看到我的疑问,不吝赐教。谢谢

多重判断 if then fi

几个要点

if xxxx ;then

aaaaa

fi                    判断之后要加 ; then

if xxxxx ;then

aaaaa

else

bbbbbbbbbb

fi                    else后面什么都不要加

if xxxxx ;then

aaaaaa

elif xxxxxx;then

bbbbbbb

else

cccccccc

fi                        elif后面跟if一样,都要加  ;then

shell script 二 判断符号【】 shift 偏移量 if then fi的更多相关文章

  1. 一起来学linux:shell script(二)关于脚本

    (一)首先来看shell脚本的执行方式,shell脚本的后缀名都是sh文件. 1 sh test.sh 2 source test.sh 这两种方式有什么区别呢.test.sh 里的脚本很简单, 从键 ...

  2. 第13章 学习shell script

    由于博客园中dollar符号有别的意义,所以文中的dollar符号使用¥表示 第一个script [root@localhost script]# cat -n sh01.sh #!/bin/bash ...

  3. shell及脚本4——shell script

    一.格式 1.1 开头 必须以 "# !/bin/bash"  开头,告诉系统这是一个bash shell脚本.注意#与!中间有空格. 二.语法 2.1 数值运算 可以用decla ...

  4. shell script

    一.shell script的编写与执行 1.shell script 的编写中还需要用到下面的注意事项: a.命令的执行是从上到下,从左到右地分析与执行 b.命令.参数间的多个空白都会被忽略掉 c. ...

  5. shell script入门

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...

  6. bash shell学习-shell script基础 (笔记)

    A chain no stronger than its weakest link. "一着不慎,满盘皆输" 参考资料:鸟哥的Linux私房菜 基础学习篇(第三版)  Linux ...

  7. 学习shell script

    摘要:概述.script的编写.test命令.[]判断符号.默认变量($1...).if...then条件判断式. 一.概述 [什么是shell script] 针对shell所写的脚本,将多个命令汇 ...

  8. shell script简单笔记

    变量 shell script是一种脚本语言,变量的定义是通过 myName=HYB 这样的形式定义的. 当存在空格时,可以通过双引号或单引号将其变为字符串.双引号不进行转义,单引号将内容进行转义为一 ...

  9. 第十三章、学习 Shell Scripts 善用判断式

    善用判断式 利用 test 命令的测试功能 我要检查 /dmtsai 是否存在时,使用: [root@www ~]# test -e /dmtsai [root@www ~]# test -e /dm ...

随机推荐

  1. MySQL 基础 20191025

    1.MySQL(绿色软件)的安装后: (老师课件中的) 要设置字符集不然会报 1344 错误码,有两种: 为上面的还有一种为: set names 'utf8'; 2.MySQL管理 创建数据库 CR ...

  2. Docker容器网络前提提要

    docker exec -it kvstor1 /bin/sh ##[进入一个redis容器] docker exec -it web1 /bin/sh ##[进入一个nginx容器] ###dock ...

  3. 微信浏览器 video - android适配

    阶段一: 直接裸用 video 标签, 安卓 - 会重新弹一个播放层, 和之前video的父盒子错位, 要多丑有多丑, 体验要多烂有多烂. 阶段二: video添加以下属性, 安卓可实现内联播放, 但 ...

  4. 【leetcode】688. Knight Probability in Chessboard

    题目如下: On an NxN chessboard, a knight starts at the r-th row and c-th column and attempts to make exa ...

  5. Mybatis缓存+配置

    mybatis提供了缓存机制减轻数据库压力,提高数据库性能 mybatis的缓存分为两级:一级缓存.二级缓存 一级缓存是SqlSession级别的缓存,缓存的数据只在SqlSession内有效 二级缓 ...

  6. django 框架下的路由分发

  7. Jquery 实现回车键触发功能

    keyup,上抬键盘 .$(function(){ 方法一: $(document).keyup(function(event){ if(event.keyCode ==13){ alert(&quo ...

  8. CJE-Jenkins认证工程师考试预约报名流程

    先决条件 考试费用150美元,需要由master/visr信用卡支付 考试全英文  哈哈哈 考试目的 通过各种渠道能够找到Jenkins的学习资料,并能够完成jenkins的配置管理,还是想全面的系统 ...

  9. svn提交代码失败提示清理(清理失败并且报错信息乱码解决办法)

    原因是;svn的数据库队列原因 1,下载sqlite3.exe,  sqlite官网http://www.sqlite.org/download.html) 2.在Windows的D盘中新建tools ...

  10. HTML5: HTML5 表单元素

    ylbtech-HTML5: HTML5 表单元素 1.返回顶部 1. HTML5 表单元素 HTML5 新的表单元素 HTML5 有以下新的表单元素: <datalist> <ke ...