dd

#!/bin/bash
echo 'Hello World!'array=(a b 3 "ch")
for i in array;doecho ${array[i]}
doneecho ${array[*]}
echo ${#array[@]}
#---------------------------------------
vers=$(uname -r) #括号表示括号里面的内容先执行 等同于反引号
echo ${vers}
read -p "input your name: " -t 30 named
#----------------------------------------
val=$((2+2))
echo "两数之和为 : $val"#输出==========================================================================
Hello World!
a
a b 3 ch
4
3.13.0-32-generic
两数之和为 : 4

原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。

expr 是一款表达式计算工具,使用它能完成表达式的求值操作。

例如,两个数相加(注意使用的是反引号 ` 而不是单引号 '):

#!/bin/bashval=`expr 2 + 2`
echo "两数之和为 : $val"

运行实例 »

执行脚本,输出结果如下所示:

两数之和为 : 4

两点注意:

  • 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
  • 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。

注意:条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]


运算符 说明 举例
-eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。
-ne 检测两个数是否相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
-gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。
-lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。
-ge 检测左边的数是否大等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。
-le 检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true。
a=10
b=20if [ $a -eq $b ]
thenecho "$a -eq $b : a 等于 b"
elseecho "$a -eq $b: a 不等于 b"
fi



字符串运算符

下表列出了常用的字符串运算符,假定变量 a 为 "abc",变量 b 为 "efg":

运算符 说明 举例
= 检测两个字符串是否相等,相等返回 true。 [ $a = $b ] 返回 false。
!= 检测两个字符串是否相等,不相等返回 true。 [ $a != $b ] 返回 true。
-z 检测字符串长度是否为0,为0返回 true。 [ -z $a ] 返回 false。
-n 检测字符串长度是否为0,不为0返回 true。 [ -n $a ] 返回 true。
str 检测字符串是否为空,不为空返回 true。 [ $a ] 返回 true。
if [ -z $a ]
thenecho "-z $a : 字符串长度为 0"
elseecho "-z $a : 字符串长度不为 0"
fi



文件测试

参数 说明
-e 文件名 如果文件存在则为真
-r 文件名 如果文件存在且可读则为真
-w 文件名 如果文件存在且可写则为真
-x 文件名 如果文件存在且可执行则为真
-s 文件名 如果文件存在且至少有一个字符则为真
-d 文件名 如果文件存在且为目录则为真
-f 文件名 如果文件存在且为普通文件则为真
-c 文件名 如果文件存在且为字符型特殊文件则为真
-b 文件名 如果文件存在且为块特殊文件则为真

实例演示:

cd /bin
if test -e ./bash then echo '文件已存在!' else echo '文件不存在!' fi

dd

转载于:https://www.cnblogs.com/hanggegege/p/5875043.html

------shell学习相关推荐

  1. shell学习笔记 (2)

    shell学习笔记 (2) ---china.pub.com  linux shell电子书学习笔记 第2章 使用find和xargs find pathname -options [-print - ...

  2. 【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等

    1 学习shell的目的性 写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单.灵活.高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作 ...

  3. Shell学习之结合正则表达式与通配符的使用(五)

    Shell学习之结合正则表达式与通配符的使用 目录 通配符 正则表达式与通配符 通配符 通配符的使用 正则表达式 正则表达式 正则表达式的使用 通配符 正则表达式与通配符 正则表达式用来在文件中匹配符 ...

  4. Shell学习:关于替换命令-tr-ROT13法则

    Shell学习:关于替换命令-tr-ROT13法则     [root@stu100 ~]# echo abcdef|tr 'abcdef' 'xyzabc' xyzabc [root@stu100 ...

  5. shell 学习之for语句

    shell 学习之for语句 一.for语法 for 变量 in 列表:do     循环体 done 二.常见用法 1.for用来遍历目录 1 2 3 4 5 6 7 8 9 10 #!/bin/b ...

  6. shell学习-基础篇

    shell学习-基础篇 Linux? 挺好的! shell是基础- 最近利用闲暇时间在 http://c.biancheng.net/ 网站上学习了shell基础篇,整理成博客以加深理解 文章目录 L ...

  7. shell学习训练总结_7

    shell学习训练&&总结_7 统计班级学生各科成绩(shuxue,yuwen,yinyu)信息,并计算各科成绩的平均值和总和 正则案例分析 datafile操作要求: 针对shell ...

  8. 【shell学习】missing-semester-3-编辑器Vim

    编辑器(Vim) 写英语单词和写代码是完全不同的活动.在编程时,与编写一长串文字相比,您需要花费更多的时间来切换文件.读取.导航和编辑代码.有不同类型的程序用于编写英文单词和代码(例如Microsof ...

  9. ADB Shell学习

    ADB Shell 学习 又是一个周末了,最怕闲来无事的周末,于是给自己找点事情做,ADB shell这一块一直没有系统的学习,正好趁此机会学习. 主要通过学习资料和adb –help文档学习 怎么使 ...

  10. Linux的冒号和波浪号用法,shell 学习三十五天---波浪号展开与通配符

    shell 学习三十五天---波浪号展开与通配符 shell 中两种与文件名相关的展开.第一种是波浪号展开,第二种是通配符展开式. 波浪号展开 如果命令行字符串的第一个字符为波浪号(~),或者变量指定 ...

最新文章

  1. javascript菜鸟学习20170113
  2. LeetCode Valid Perfect Square(是否是平方数)
  3. linux 文件操作 编程,Linux系统编程------------文件操作(基础)
  4. Java IO知识点
  5. 【转】采购订单行项目检查增强
  6. Android开发二 什么是Android
  7. JDK 6中新增的Java Console类功能概览
  8. python实现编辑距离,最长公共子序列,最长公共子串
  9. 图像形状特征(八)--SC形状上下文
  10. OpenGL编程指南第九版第一个示例配置
  11. 在线matlab,亲测好用
  12. django常见面试题
  13. 精度LiDAR-Monocular Visual Odometry
  14. 2016年蓝桥杯B组C/C++省赛试题-漏网之渔
  15. 计算机网络未识别网络,电脑网络出现未识别的网络,无Internet访问的解决办法...
  16. 在Microsoft Server Management Studio中用T-SQL语句创建数据库和工作表
  17. Kinect应用开发实战:用最自然的方式与机器对话
  18. 差分隐私(DP)中隐私预算ε的理解
  19. Linux 10个主流发行版本
  20. 高速文件服务器搭建教程,文件服务器配置教程.doc

热门文章

  1. Mybatis中@Param的用法和作用
  2. Minor GC和Major GC和Full GC
  3. 多线程售票demo,用ReentrantLock实现
  4. 手机知识:90Hz或120Hz屏幕刷新率有啥区别,看完你就懂了!
  5. 项目管理:软件工程相关知识笔记
  6. 后端:Layui实现文件上传功能
  7. Linux常见英文报错中文翻译(菜鸟必知)
  8. js打开android应用程序,浏览器通过JS打开Android程序
  9. PHP GD库解析一张简单图片并输出
  10. Java基础查漏补缺:(String篇)一个面试题问倒了我,原来String并不简单