Shell Script(1)----variable compare
PS:在学习python的时间里,抽空复习自己学习的Linux下的shell脚本知识点
1.数据类型
学习一门语言,比较关心其数据的表示方式,以及数据的类型,这里首先看一个bash shell的脚本

执行脚本如下,

由此得出以下结论:
shell中,所有的变量字面类型都是字符串;仅当变量值全部由数字(0-9)组成时,才可以对变量进行数学运算
注:shell中,可通过declear或者typeset内部命令显式声明数据类型
#declare -i var //声明变量var为整型数
#declare -a var //声明变量var为数组
#declare -f var //声明变量var为函数
#declare -r var //声明变量var为只读
这里我们重新编写脚本

执行该脚本

我们发现,尽管显式地声明了var的类型,但其依然可被当作字符串参与比较;使用这中声明的方式的好处在于----可以对变量直接进行数学运算操作,
省去了作为字符串的繁琐方式
let "var=var+1" //var作为字符串
declare -i var
var=var+1 //var作为整型数,直接参与数学运算
2.比较&测试
shell中的测试比较主要分为3大类(个人意见):文件测试,数值比较,字符串比较
(1)文件测试
//测试存在
-e 测试文件是否存在
-d 测试目录是否存在
-f 测试普通文件是否存在
//测试权限
-r 测试文件是否可读
-w 测试文件是否可写
-x 测试文件是否可执行
//测试类型
-s 测试文件是否为空
-b 测试文件是否是块(block)设备,如硬盘等
-c 测试文件是否是字符设备
-p 测试文集是否是管道(pipe)
-S 测试文件是否是一个socket
更多还有:-h,-L,-t等等
.........................
//测试新旧
f1 -nt f2 f1比f2新 //-nt newer than
f1 -ot f2 f1比f2旧 //-ot older than
f1 -ef f2 f1与f2都链接到同一文件上
(2)数值比较
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
注:也可使用> >= < <=的形式,但此时需要将表达式用双括号括起来,如 (("$a">"$b"))
(3)字符串比较
= 等于(POSIX version)
== 等于
!= 不等于
> 大于
< 小于
-z 字符串长度为0 (zero),即字符串为空(null)
-n 字符串不为空(null),not zero
Note:
更多相关内容,参考<<Advanced Bash Shell Script>> Page:46,62
Shell Script(1)----variable compare的更多相关文章
- 这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script
这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script ##转载注明出处:http://www.cnblogs.com/wade-xu/p/4378224.html ...
- (copy) Shell Script to Check Linux System Health
source: http://linoxide.com/linux-shell-script/shell-script-check-linux-system-health/ This article ...
- shell script入门
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...
- shell script中的$*和$@
在shell script中,$*和$@都是获取所有的命令行参数,但是这两者在使用的过程中会有细微的差别,差别主要是在有没有使用双引号,即是直接使用$*,$@,还是使用"$*",& ...
- 学习shell script
摘要:概述.script的编写.test命令.[]判断符号.默认变量($1...).if...then条件判断式. 一.概述 [什么是shell script] 针对shell所写的脚本,将多个命令汇 ...
- Shell Script Basics
https://developer.apple.com/library/mac/documentation/OpenSource/Conceptual/ShellScripting/shell_scr ...
- shell script简单笔记
变量 shell script是一种脚本语言,变量的定义是通过 myName=HYB 这样的形式定义的. 当存在空格时,可以通过双引号或单引号将其变为字符串.双引号不进行转义,单引号将内容进行转义为一 ...
- shell 编程 && bash 简介(shell 变量、shell操作环境、数据流重导向、管线命令、shell script)
如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所 ...
- shell及脚本4——shell script
一.格式 1.1 开头 必须以 "# !/bin/bash" 开头,告诉系统这是一个bash shell脚本.注意#与!中间有空格. 二.语法 2.1 数值运算 可以用decla ...
随机推荐
- 使用netty构建一个socks proxy
使用netty构建一个socks proxy 最近在做的项目,需要自己搭建一个socks代理.netty4.0附带了一个socks代理的样例,但是3.x就没有这个东西了,碰巧使用的又是3.7,就只 ...
- PROS Step:只需几分钟即可创建优化的价目表,并发现即时收益机会。
多年来,各个公司一直使用手动流程和电子表格来制定产品和服务定价,而没有真正意义上的方法或策略.在我写这篇文章时仍然如此! 但是,如今的形势已经改变.利用 PROS Step,公司可以将其数据上传到 M ...
- linux之vim配置
代码自动补全和代码跳转阅读,应该是作为程序员最常用的功能之一了,具体二者是指什么我就不解释了.微软的Visual Studio就是靠这两样必杀技牢牢占据着广大windows程序员的心(这里面要有强大的 ...
- 简单天气应用开发——API接口
寒假回家无事,想到自学iOS开发已有一段时间,还没做过真正自己的应用,就起了做一个天气预报App的念头. 想到就做.天气预报第一步自然是找到好用的API接口来获取天气信息.在百度上搜索了一圈,找到的都 ...
- #pragma pack(push,1)与#pragma pack(pop)
这是给编译器用的参数设置,有关结构体字节对齐方式设置, #pragma pack是指定数据在内存中的对齐方式. #pragma pack (n) 作用:C编译器将按照n个字节对 ...
- Problem F: Exponentiation
Problem F: ExponentiationTime Limit: 1 Sec Memory Limit: 128 MBSubmit: 4 Solved: 2[Submit][Status][W ...
- js表格排序 & 去除字符串空格
// a:列数 bool:排序升序判断参数 true false Str:支持多列 function newUnitSort(a, bool, str) { var oTable = document ...
- .net 基础错误-string.replace 方法
1.string string.Replace(string oldValue,string newValue) 返回一个新的字符串,其中当前示例中出现的所有指定字符串都替换另一个指定字符串 错误:总 ...
- idea中使用scala运行spark出现Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class
idea中使用scala运行spark出现: Exception in thread "main" java.lang.NoClassDefFoundError: scala/co ...
- [LeetCode]题解:005-Longest Palindromic Substring优化
题目来源和题意分析: 详情请看我的博客:http://www.cnblogs.com/chruny/p/4791078.html 题目思路: 我上一篇博客解决这个问题的时间复杂度是最坏情况是(O(n^ ...