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. 监控ui_做了10年监控系统,有些经验想和你分享
  2. 关于 HeartBleed 安全漏洞的 2 张漫画
  3. 双城记s001_双城记! (使用数据讲故事)
  4. Unity3D性能优化之Draw Call Batching
  5. linux怎么安装git服务器,linux下安装git服务端
  6. 2021年中国单索运动滑轮市场趋势报告、技术动态创新及2027年市场预测
  7. 【图像融合】基于matlab curvelet变换图像融合【含Matlab源码 776期】
  8. 恒生电子笔试题集锦(不断更新)
  9. PL/SQL基础入门,史上最全的教程
  10. Kademlia、DHT、KRPC、BitTorrent 协议、DHT Sniffer
  11. [ 八爪鱼使用经验] 爬取简单列表数据
  12. 徐有高:为你详细解读我国40省市新能源汽车补贴政策(转载)
  13. 推荐与广告 中的概念和指标
  14. 解决导入maven项目之后pom.xml中的project标签报错:批量删除没有下载完全的pom依赖bat脚本
  15. 【文献翻译】基于SCAP的配置分析用于全面的合规性检查
  16. 2021年焊工(初级)模拟考试题及焊工(初级)模拟考试题库
  17. css3实现下拉列表框
  18. 百度云管家 提取下载链接(已过时,仅用作存档)
  19. 【转】LDAP入门简介
  20. 简述卡西欧5800p计算机,卡西欧5800p计算器所有解释

热门文章

  1. linux crontab怎么写,linux定时任务crontab
  2. 更新 绑定数据_Blazor 修仙之旅 组件与数据绑定
  3. MySQL存储树形数据优化技笔记
  4. java制定年月日第几天_(JAVA)输入年月日,计算日期是今年的第几天?
  5. csv导入mysql linux_如何将CSV文件导入MySQL表
  6. Mybatis Integer类型参数值为0时判断为空、空字符串不通过
  7. ui设计基础_我不知道的UI设计的9个重要基础
  8. 一名运营,自学一年前端,成功入职杭州某独角兽企业,他的面试经验和学习方法等分享...
  9. 6轮字节前端校招面试经验分享
  10. PXC集群常见错误(一)