shell_语法
1、运算符:
1、基本语法:$((运算式))或$[运算式]
2、expr + n // 注意运算符中间有空格
再用expr时要加 ` ` 号,* 号加转义字符\ \* ,表示乘
2、判断语句
[ condition ] // 注意condition前后要有空格,非空返回true,可使用$?验证(0位true >1位false)
两个数比较
= 字符串比较
-lt 小于
-le 小于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于
文件权限比较
-r 有读的权限
-w 有写得权限
-x 有执行得权限
按照文件类型判断
-f 文件存在并且是一个常规文件
-e 文件存在
-d 文件存在并是一个目录
例:
[ 22 -lt 23]
[ -w shtu.txt ]
[ -e /root/sh.log ]
注意: 前后空格
3、流程控制
if 判断
if [ 条件判断式 ];then
.....
elif [ 条件判断式 ];then
......
else
......
fi
或者
if [ 条件判断式 ]
then
.....
fi
注意;if后面的空格和条件判断式前后的空格
case语句:
case $变量名 in
值1)
......... // 如果值等于1,侧执行1
;;
值2)
......... // 如果值等于2,则执行2
;;
esac
for循环:
for 变量 in 值1 值2 .... 或者可以是一个数组
do
....
done
或者:
for (( i=1; i<10; i=$i+1 ))
do
....
done
while循环:
while[ 条件判断式 ]
do
.....
done
4、read读取控制台输入
read(选项)(参数)
选项;
-p : 指定读取值时的提示符
-t : 指定读取值时的等待时间
参数:
变量:指定读取值的变量名
例:read -p "你的名字:" name // 注意空格,在shell脚本用的时候加 ` ` 包着
5、函数
basename 文件路径 // 删除所有前缀包括最后一个 / ,只留下一个文件名, 在shell脚本中使用时要用 ` ` 包着
dirname 文件路径 // 去除文件名,返回一个路径 。在shell脚本中使用时要用 ` ` 包着,
注意:在shell脚本中运行一些命令时,如果不管用,用 ` ` 包着使用。例; `pwd -p`
shell_语法的更多相关文章
- linux bash 的基础语法
示例均来自网络,附带有原始链接地址,自己练习整理发出,均测试可用 linux shell 基本语法 - 周学伟 - 博客园 https://www.cnblogs.com/zxouxuewei/p/6 ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
- 探索C#之6.0语法糖剖析
阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...
- [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性
回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...
- Velocity初探小结--velocity使用语法详解
做java开发的朋友一般对JSP是比较熟悉的,大部分人第一次学习开发View层都是使用JSP来进行页面渲染的,我们都知道JSP是可以嵌入java代码的,在远古时代,java程序员甚至在一个jsp页面上 ...
- node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法
1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...
- C#语法糖大汇总
首先需要声明的是"语法糖"这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕 ...
- 值得注意的ibatis动态sql语法格式
一.Ibatis常用动态sql语法,简单粗暴用一例子 <select id="iBatisSelectList" parameterClass="java.util ...
随机推荐
- OCP考试062题库出现大量新题-19
choose three Which three statements are true about Oracle Data Pump? A) Oracle Data Pump export and ...
- flask_maple使用文档
安装 To install Flask-Maple: pip install flask-maple Or alternatively, you can download the repository ...
- Lucene使用案例
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引 ...
- 开发ASP.NET MVC 开发名片二维码生成工具 (原创)
在网上找了很多,都只能生成网址,不能生成名片二维码,于是自己动手. 第一步,写视图界面,主要代码如下: <script type="text/javascript"> ...
- centos7 安装cmake
安装cmake之前,记得升级gcc,请参考centos7 升级GCC版本到7.3.0 #shell 太简单,懒得解释 wget https://cmake.org/files/v3.11/cmake- ...
- vue仿微信网页版|vue+web端聊天室|仿微信客户端vue版
一.项目介绍 基于Vue2.5.6+Vuex+vue-cli+vue-router+vue-gemini-scrollbar+swiper+elementUI等技术混合架构开发的仿微信web端聊天室— ...
- (转)python-user-agents
原文:http://blog.topspeedsnail.com/archives/1958 Python3网络爬虫(四):使用User Agent和代理IP隐藏身份-------https://bl ...
- SQL语句:Mac 下 处理myql 不能远程登录和本地登录问题
mac下,mysql5.7.18连接出错,错误信息为:Access denied for user 'root'@'localhost' (using password: YES) ()里面的为she ...
- 多线程编程——java
1.进程和线程 进程:一个计算机程序的运行实例,包含了需要执行的指令:有自己的独立地址空间,包含程序内容和数据:不同进程的地址空间是互相隔离的:进程拥有各种资源和状态信息,包括打开的文件.子进程和信号 ...
- 全网最详细的Xshell或SecureCRT下spark-shell里出现无法退格或者删除的问题现象的解决办法(图文详解)
不多说,直接上干货! 前言 打开spark的命令行后,发现输错字符了,但是无法退格或者删除,这是比较苦恼的问题. 这个问题,得看你是用Xshell,还是SecureCRT. 一般是出现在SecureC ...