快速入门shell脚本编写(二)
来源:互联网 发布:小米电视网络怎么安装 编辑:程序博客网 时间:2024/05/21 16:21
上次在写shell的时候发现vi和vim不一样:vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。vim要比vi好用许多。
这次接着上次的内容,基础知识,继续学习,本文作者也在自学中,纰漏错误在所难免,若有人发现问题请指出谢谢!
Lee出品,转载请注明出处http://blog.csdn.net/hnulwt/article/details/43155797
布尔运算符
先大致熟悉一下布尔相关的三个运算符
! 非运算
-o 或运算(or)
-a 与运算(and)
接着写程序熟悉一下:
运行结果:Lee@Lee-PC /Desktop
$ sh test.sh
4 != 6 a is not equal to b
and && true
布尔运算符比较简单,和我们平时自己使用的编程语言区别不大,只需注意他的或运算和与运算符号即可。
shell脚本有俩类较为特殊的运算符:1,字符串相关运算符 2文件测试运算符
字符串 和 字符串运算符
提到了字符串,先讲讲shell中的字符串,他大概是shell中最常用的数据类型了(貌似除了他也没有其他类型了),先来看看字符串的表示方式
字符串可以用单引号,也可以用双引号,也可以不用引号
单引号
俩点需要注意:
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单引号(对单引号使用转义符后也不行)
双引号
双引号基本没有什么限制,一般常用双引号,双引号里面可以使用转义字符,可以带入变量
例:
运行结果:$ sh teststr.sh
Hi, "dog"
可以看出俩个冒号被转义了,animal代表的字符串被代入新的句子中。
这里再说有关于字符串的几个方法
1,获取字符串长度的方法
2,查找字符串
输出结果:11(注意这里第三行,expr 和 cat之后有特殊符号,该符号不是单引号,是Esc键下面那个)
好了,接着我们来看看字符串运算符有哪些
= 和 != 判断俩个字符串是否相等(还记得判断数字是否相等的运算符么(-eq和-ne))
-z 、 -n 或者直接将字符串代入 判断字符串长度是否为零(-z当字符串长度为0返回 true,)
下面看测试程序:
看看运行结果:
$ sh test.sh
2
4
5
文件测试运算符
首先我们在桌面上创建一个文件,执行命令touch file.test
这时候我们已经创建了文件,但是我们并不知道他的权限是什么,运行命令:ls -l | grep file.test查看权限,运行结果如下图所示:
这里我们对Linux权限做简单的介绍:
上图中权限最开始是-(常规文件),而还有可能的开头还有,
“d”目录(非常常见,你随便找一个目录,在这个目录的上一层目录ls -l一下就可以看到)
“l”符号链接(通过ln 创建的一些链接)
“c”字符专门设备文件
“b”块专门设备文件
“p”先进先出
“s”套接字
然后我们开始看第一个-后面的字段,三个为一组看,第一个三元字符组(rw-)代表文件所有者的权限,第二个(r--)代表文件的组的权限,第三个(r--)代表所有其他用户的权限
r 和 w分别代表什么意思呢?分别代表 可读read 和 可写write。还有一个目前文件没有该权限,即x 可执行(execute),那我们现在到底有什么权限呢,一般我们拥有 第一个三元字符组 代表的权限,即:可读可写
好了,那我么赋于他可执行权限 chmod +x file.test,这样是赋予三个文件所有者可执行权限,我们也可以执行 chmod u+x file.test仅仅给我们自己加权限。
有关于chmod指令详细介绍,可以执行chmod --help查看
现在权限已经赋于文件了。准备工作已经做好,接下来我们准备对我们新增的这个文件做个测试。
写如下shell用于熟练和测试:
$ sh test.sh
1
3
file is an ordinary file
not direcotry
可能还对上面的某些操作符不熟悉,下面附详细的操作符表。
- 快速入门shell脚本编写(二)
- 快速入门shell脚本编写(二)
- 快速入门shell脚本编写(二)
- 快速入门shell脚本编写(一)
- 快速入门shell脚本编写(三)
- 快速入门shell脚本编写(四)
- 快速入门shell脚本编写(一)
- 快速入门shell脚本编写(三)
- 快速入门shell脚本编写(四)
- 快速入门shell脚本编写(一)
- 快速入门shell脚本编写(三)
- 快速入门shell脚本编写(四)
- shell脚本编写入门
- Shell脚本快速入门
- Linux Shell脚本快速入门
- Shell脚本入门(二) - Hello Shell
- 记一次shell脚本入门编写
- Batch批处理命令编写脚本快速入门
- Cocos2d-x:整体框架源码分析以及启动过程原理(win32)
- eclipse编译java/xml文件无法自动提示
- Java安全学习笔记(九)-输入流的加密和解密
- 二维数组练习17_最好的草
- Android开发,自定义View(二)-----进阶
- 快速入门shell脚本编写(二)
- 弱监督深度学习
- 动态改变shape的背景色
- android 非侵入式热修复框架Hotfix使用
- MariaDB忘记root密码,修改root密码
- Flask零基础到项目实战(六)cookie和session--操作session(二)
- 根据出生日期计算年龄(精确到天)
- MySQL常用操作
- 面试题--JAVA中静态块、静态变量加载顺序详解