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的更多相关文章

  1. 这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script

    这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script ##转载注明出处:http://www.cnblogs.com/wade-xu/p/4378224.html ...

  2. (copy) Shell Script to Check Linux System Health

    source: http://linoxide.com/linux-shell-script/shell-script-check-linux-system-health/ This article ...

  3. shell script入门

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

  4. shell script中的$*和$@

    在shell script中,$*和$@都是获取所有的命令行参数,但是这两者在使用的过程中会有细微的差别,差别主要是在有没有使用双引号,即是直接使用$*,$@,还是使用"$*",& ...

  5. 学习shell script

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

  6. Shell Script Basics

    https://developer.apple.com/library/mac/documentation/OpenSource/Conceptual/ShellScripting/shell_scr ...

  7. shell script简单笔记

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

  8. shell 编程 && bash 简介(shell 变量、shell操作环境、数据流重导向、管线命令、shell script)

    如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所 ...

  9. shell及脚本4——shell script

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

随机推荐

  1. Linux-NGINX 能否添加P3P头,如何添加。 - 德问:编程社交问答

    Linux-NGINX 能否添加P3P头,如何添加. - 德问:编程社交问答   您的投票让 杜鑫 声誉值增加5分. 支持投票,不仅能让提问用户获得声誉值,让好的问题有更多的曝光,更能帮助社区筛选出好 ...

  2. 张王李相亲应用if else

    package hello; public class to { public static void main(String[]args){ int a =1,b=0; int c =1,d=0; ...

  3. BC第二场

    GT and sequence  Accepts: 385  Submissions: 1467  Time Limit: 2000/1000 MS (Java/Others)  Memory Lim ...

  4. Android Layout Binder(在线将XML中View find出来,生成java代码的工具)

    废话不多说,这是地址:http://android.lineten.net/layout.php. 有图有真相,比如: 你的XML假如是这样: <?xml version="1.0&q ...

  5. tomcat的JK和JK2

    如今又開始配置JK2,想将Tomcat和apache,但Tomcat上已经不支持对于JK2的开发了,详情请看: Apache-Tomcat mod_jk2 aka JK2 15 November - ...

  6. tomcat 7 无法打开管理页面

    在配置文件tomcat-users.xml中添加如下内容即可. <role rolename="admin"/> <role rolename="man ...

  7. CSS换行1

    1.你定死表格的宽度,即给表格一个宽度值(是数值,不是百分比)   2.强制不换行 div{//white-space:不换行;normal 默认;nowrap强制在同一行内显示所有文本,直到文本结束 ...

  8. ##DAY4 事件的基本概念、触摸的基本概念、响应者链、手势

    ##DAY4  事件的基本概念.触摸的基本概念.响应者链.手势 #pragma mark ———————事件的基本概念 ——————————— 事件的基本概念: 1)事件是当用户的手指触击屏幕及在屏幕 ...

  9. union 和 union all 有什么不同?

    假设我们有一个表 Student, 包括以下字段与数据:drop table student;create table student( idint primary key,name nvarchar ...

  10. 我用过的linux命令--安装Hadoop

    1. hadoop软件传送给虚拟机 还是利用WinSCP把hadoop软件安装包,放到linux的Downloads文件夹中. 2. 选择安装目录 把hadoop安装包copy到这个安装目录中,这里我 ...