判断符号【】类似于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

最新文章

  1. XML 特殊字符
  2. JAVA设计模式之享元模式
  3. poj 2567 Code the Tree 河南第七届省赛
  4. js为表格添加行和列
  5. 按要求编写一个Java应用程序: (1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。 (2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性, 和计算体积的方法。 (3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、 宽、高,输出其底面积和体积。
  6. apache kafka技术分享系列(目录索引)--转载
  7. Javascript高级程序设计——语法、关键字、保留字、变量、数据类型
  8. 汇编指令-MRS(读)和MSR(写)指令操作CPSR寄存器和SPSR寄存器使用(1)
  9. 使用numpy实现批量梯度下降的感知机模型
  10. css实现背景颜色渐变效果
  11. Linux如何实现进程监控和守护
  12. ln语法
  13. CentOS7下使用YUM安装MySQL5.6
  14. c#中委托和事件区别
  15. error: http://ppa.launchpad.net lucid Release: The following signatures couldn't be verified because
  16. ASP.NET学习笔记(6)——jQuery的Ajax基本操作
  17. SQL Server中的database checkpoint
  18. php学习一:语法规则
  19. 【软工实践】第四次作业--爬虫结合WordCount
  20. 【BZOJ 3534】 3534: [Sdoi2014]重建 (Matrix-Tree Theorem)

热门文章

  1. Java compiler level does not match the version of the installed Java project facet错误
  2. Spring Bean 的加载过程
  3. \ HTML5开发项目实战:照片墙
  4. java基础学习笔记六(继承)
  5. spring需要表
  6. Java 设计模式-【单例模式】
  7. tomcat启动、停止和重启脚本
  8. oracle聚合函数avg()注意点
  9. [转]DrawPrimitive 详解Direct3DDevice8
  10. Normal Equation Algorithm