shell script 二 判断符号【】 shift 偏移量 if then fi
判断符号【】类似于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的更多相关文章
- 一起来学linux:shell script(二)关于脚本
(一)首先来看shell脚本的执行方式,shell脚本的后缀名都是sh文件. 1 sh test.sh 2 source test.sh 这两种方式有什么区别呢.test.sh 里的脚本很简单, 从键 ...
- 第13章 学习shell script
由于博客园中dollar符号有别的意义,所以文中的dollar符号使用¥表示 第一个script [root@localhost script]# cat -n sh01.sh #!/bin/bash ...
- shell及脚本4——shell script
一.格式 1.1 开头 必须以 "# !/bin/bash" 开头,告诉系统这是一个bash shell脚本.注意#与!中间有空格. 二.语法 2.1 数值运算 可以用decla ...
- shell script
一.shell script的编写与执行 1.shell script 的编写中还需要用到下面的注意事项: a.命令的执行是从上到下,从左到右地分析与执行 b.命令.参数间的多个空白都会被忽略掉 c. ...
- shell script入门
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...
- bash shell学习-shell script基础 (笔记)
A chain no stronger than its weakest link. "一着不慎,满盘皆输" 参考资料:鸟哥的Linux私房菜 基础学习篇(第三版) Linux ...
- 学习shell script
摘要:概述.script的编写.test命令.[]判断符号.默认变量($1...).if...then条件判断式. 一.概述 [什么是shell script] 针对shell所写的脚本,将多个命令汇 ...
- shell script简单笔记
变量 shell script是一种脚本语言,变量的定义是通过 myName=HYB 这样的形式定义的. 当存在空格时,可以通过双引号或单引号将其变为字符串.双引号不进行转义,单引号将内容进行转义为一 ...
- 第十三章、学习 Shell Scripts 善用判断式
善用判断式 利用 test 命令的测试功能 我要检查 /dmtsai 是否存在时,使用: [root@www ~]# test -e /dmtsai [root@www ~]# test -e /dm ...
随机推荐
- js不加alert后面的代码不工作
问题:用Ajax从后台拿到了json,append到select的option里面,然后想用for循环来设置某个作为默认值,发现在for循环外面加了个alert()的话,就能实现成功,没有加这个ale ...
- 图片查看器(类似于QQ,另外又加了JARA的下方的图片缩略导航图)
源码地址:https://gitee.com/yolanda624/coffer/tree/master/src/components/a-photo-view
- java当中的Timer定时器的4种使用方式
import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask ...
- 蛋疼的 403 Forbidden You don’t have permission to access / on this server.
参考博文: a.http://www.linuxidc.com/Linux/2016-09/134827.htm 这个解释挺好 昨天配置新服务器:以为自己老手 就一步到位结果一直出现 403 For ...
- 二、jQuery Ajax请求
一.Ajax请求 1.jQuery Ajax请求 let ajaxTimeOut = $.ajax({ //将网络请求事件赋值给变量ajaxTimeOut url: "/api_v1.1/a ...
- LeetCode--Longest Consecutive Sequence(最长连续序列) Python
题目描述: Longest Consecutive Sequence(最长连续序列) 中文: 给定一个未排序的整数数组,找出最长连续序列的长度. 要求算法的时间复杂度为 O(n). 英文: Given ...
- docker-ce 搭建的 lamp 开发环境笔记
工作目录: /home/{username}/dockers/lamp 将docker容器的apache的80 映射为本地主机的81 # sudo docker pull mattrayner/lam ...
- vue 点击当前元素改变样式
template <ul> <li v-for="(relation,index) in relations" v-bind:id="relat ...
- 1.MVC的初步了解
1.MVC简单介绍 1)原理(如图)如果想更加深入了解原理,可以访问此地址(https://www.cnblogs.com/uicodeintoworld/p/8950877.html) 理解:客户端 ...
- iview select下拉框的蜜汁小坑
前言 最近使用iview的select下拉选择器,遇到一个很神奇的问题:选中下拉框里面的一个值,但是再去点下拉框的时候就只剩刚才选中的数据了.感觉应该是插件把刚才选中的数据当做的搜索条件,所以需要做的 ...