------shell学习
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学习相关推荐
- shell学习笔记 (2)
shell学习笔记 (2) ---china.pub.com linux shell电子书学习笔记 第2章 使用find和xargs find pathname -options [-print - ...
- 【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等
1 学习shell的目的性 写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单.灵活.高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作 ...
- Shell学习之结合正则表达式与通配符的使用(五)
Shell学习之结合正则表达式与通配符的使用 目录 通配符 正则表达式与通配符 通配符 通配符的使用 正则表达式 正则表达式 正则表达式的使用 通配符 正则表达式与通配符 正则表达式用来在文件中匹配符 ...
- Shell学习:关于替换命令-tr-ROT13法则
Shell学习:关于替换命令-tr-ROT13法则 [root@stu100 ~]# echo abcdef|tr 'abcdef' 'xyzabc' xyzabc [root@stu100 ...
- shell 学习之for语句
shell 学习之for语句 一.for语法 for 变量 in 列表:do 循环体 done 二.常见用法 1.for用来遍历目录 1 2 3 4 5 6 7 8 9 10 #!/bin/b ...
- shell学习-基础篇
shell学习-基础篇 Linux? 挺好的! shell是基础- 最近利用闲暇时间在 http://c.biancheng.net/ 网站上学习了shell基础篇,整理成博客以加深理解 文章目录 L ...
- shell学习训练总结_7
shell学习训练&&总结_7 统计班级学生各科成绩(shuxue,yuwen,yinyu)信息,并计算各科成绩的平均值和总和 正则案例分析 datafile操作要求: 针对shell ...
- 【shell学习】missing-semester-3-编辑器Vim
编辑器(Vim) 写英语单词和写代码是完全不同的活动.在编程时,与编写一长串文字相比,您需要花费更多的时间来切换文件.读取.导航和编辑代码.有不同类型的程序用于编写英文单词和代码(例如Microsof ...
- ADB Shell学习
ADB Shell 学习 又是一个周末了,最怕闲来无事的周末,于是给自己找点事情做,ADB shell这一块一直没有系统的学习,正好趁此机会学习. 主要通过学习资料和adb –help文档学习 怎么使 ...
- Linux的冒号和波浪号用法,shell 学习三十五天---波浪号展开与通配符
shell 学习三十五天---波浪号展开与通配符 shell 中两种与文件名相关的展开.第一种是波浪号展开,第二种是通配符展开式. 波浪号展开 如果命令行字符串的第一个字符为波浪号(~),或者变量指定 ...
最新文章
- javascript菜鸟学习20170113
- LeetCode Valid Perfect Square(是否是平方数)
- linux 文件操作 编程,Linux系统编程------------文件操作(基础)
- Java IO知识点
- 【转】采购订单行项目检查增强
- Android开发二 什么是Android
- JDK 6中新增的Java Console类功能概览
- python实现编辑距离,最长公共子序列,最长公共子串
- 图像形状特征(八)--SC形状上下文
- OpenGL编程指南第九版第一个示例配置
- 在线matlab,亲测好用
- django常见面试题
- 精度LiDAR-Monocular Visual Odometry
- 2016年蓝桥杯B组C/C++省赛试题-漏网之渔
- 计算机网络未识别网络,电脑网络出现未识别的网络,无Internet访问的解决办法...
- 在Microsoft Server Management Studio中用T-SQL语句创建数据库和工作表
- Kinect应用开发实战:用最自然的方式与机器对话
- 差分隐私(DP)中隐私预算ε的理解
- Linux 10个主流发行版本
- 高速文件服务器搭建教程,文件服务器配置教程.doc