shell编程 之 test命令
shell编程里的测试test命令基本可以分为3种数据类型,每种都不一样。个人更倾向于理解为条件语句的写法规则,就是test加条件加判断语句。
1 数值类型
基本可以分为6个判断:-eq等于,-ne不等于,-gt大于,-lt小于,-ge大于等于,-le小于等于
实例:a=1;b=2
if test $[a] -eq $[b] #如果a等于b,那就...,-ne,-gt,,等等都可以,另外提一句,要是不是一个算式的话,可以不加方括号,$a + $b
then
echo "a=b" #缩进4个4个都行,习惯性缩进4个
else
echo "a!=b"
ps:算式有两种写法:$[a + b]和`expr $a + $b`
2 字符串
有4个判断:= ,!= , -z (长度为0)和-n(长度不为0)
实例:astr='hehehehe' ; bstr='hahahaha'
if test $astr = $bstr
then
echo "astr = bstr"
else
echo "astr !=bstr"
fi
3 文件测试
基本上有9个常用的参数,基本格式是test + 参数 +文件名,参数分别是:
-e:exists,存在这样的一个文件;
-r:readable,文件是可读的;
-w:writable,文件的可写的;
-x:文件是可执行的,
-s:存在且不为空
-d:directory,存在目录
-f:file,存在且为普通文件,
-c:文件存在而且为字符型的特殊文件 #这个地方怎么理解呢,可以和ls命令中最前面的一个字符相关联:‘-’表示文件。d则表示目录,l表示连接文件,b表示设备文件里面的可供存储的接口设备,c表示设备文件里面的串行端口设置。https://zhidao.baidu.com/question/1820545103813500748.htm
实例:
cd /etc
if test -f /etc/passwd #此处可以结合与或非逻辑语句:形如 if test -e ./notFile -o -e ./bash 表示存在./notFile 或者./bash
then
echo "yes"
else
echo "no"
fi
shell编程 之 test命令的更多相关文章
- Linux Shell 编程 教程 常用命令
概述: Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户 ...
- shell编程小技巧(命令篇)
本文主要介绍shell编程中一些好用的命令或者一些常见命令但比较少用却又好用的参数,目的是希望可以提高编码效率. df命令 常用命令 df / df -k / df -m / df -H / df - ...
- shell编程 之 echo命令和printf命令
1 echo命令基本情况: echo显示普通字符:echo "i am studying shell"(有木有引号都可以) 支持转义字符:echo "\"hel ...
- Shell编程——vim常用命令
[vim]工作模式切换: 在普通模式下输入 i(插入).c(修改).o(另起一行) 命令时进入编辑模式:按 esc 键退回到普通模式. 在普通模式下输入冒号(:)可以进入命令模式.输入完命 ...
- Shell编程—结构化命令(2)
1for命令 for命令的基本格式: for var in list do commands done 在list参数中,你需要提供迭代中要用到的一系列值. 1.1读取列表中的值 例子: $ vim ...
- Shell编程—结构化命令
1使用if-then语句 f-then语句有如下格式. if command then commands fi bash shell的if语句会运行if后面的那个命令.如果该命令的退出状态码是0(该命 ...
- linux笔记:shell编程-文本处理命令
cut(字段提取命令,也叫列提取命令): printf(格式化输出命令): awk(awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理): sed(sed是一个很好 ...
- Linux学习 -- Shell编程 -- 字符处理命令
sort排序命令 sort [选项] 文件名 -f 忽略大小m写 -n 按数值型,默认字符串型 -r 反向 -t 指定分隔符 -k n[,m] 指定字段范围,默认行尾 eg. sort -n -t & ...
- Linux学习 -- Shell编程 -- 字符截取命令
cut字段提取命令 cut [选项] 文件名 -f 列号: -d 分隔符: 局限性:空格为分隔符时不适用 printf命令 printf '输出类型输出格式' 输出内容 %s, %i, %f \a, ...
随机推荐
- decorator 装饰页面,根据不同设备自动切换移动和pc站
package com.thinkgem.jeesite.modules.sys.interceptor; import javax.servlet.http.HttpServletRequest; ...
- ` ` ` ` ` ` ` `
字符实体 说明 这是我们使用最多的空格,也就是按下space键产生的空格.在HTML中,如果你用空格键产生此空格,空格是不会累加的(只算1个).要使用html实体表示才可累加. 占据的宽度正好 ...
- OPC和DCOM配置
本文为Java实现OPC通信的一部分 系统:使用win10 64位专业版 PDF文件: 本文,链接: 百度网盘 密码: reht, Win7和Win7_SP1网络OPC配置,链接: 百度网盘 密码 ...
- jQuery使用(七):事件绑定与取消,及自定事件的实现原理
实例方法: on() one() off() trigger() hover() 一.绑定事件与jQuery事件委托 $(selector).eventType(fn); $(selector).on ...
- 【leetcode-75】 颜色分类
(1过,解法不好,看參考荷兰国旗问题解法) 给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中,我们使用整数 0 ...
- 2018牛客网暑期ACM多校训练营(第三场)C Shuffle Cards(可持久化平衡树/splay)
题意 牌面初始是1到n,进行m次洗牌,每次抽取一段放到最前面.求最后的序列. 分析 神操作!!!比赛时很绝望,splay技能尚未点亮,不知道怎么用. 殊不知,C++库里有rope神器,即块状链表. 基 ...
- HDU 1263(水果统计 **)
题意是对水果的产地和种类进行统计再按格式输出. 代码如下: #include <bits/stdc++.h> using namespace std; struct node { ],pl ...
- SignalR 2.x入门(二):SignalR在MVC5中的使用
开发(代码下载) 新建一个ASP.NET Web项目,项目类型为MVC,将认证模式改为无身份认证.在程序包管理控制台输入如下语句,安装SignalR <span style="font ...
- JAVA 线程池之Callable返回结果
本文介绍如何向线程池提交任务,并获得任务的执行结果.然后模拟 线程池中的线程在执行任务的过程中抛出异常时,该如何处理. 一,执行具体任务的线程类 要想 获得 线程的执行结果,需实现Callable接口 ...
- 50个最常用的Linux命令
转载至:http://gywbd.github.io/posts/2014/8/50-linux-commands.html tar grep find ssh sed awk vim diff so ...