linux文件测试操作
1、文件测试操作
- 返回 true 如果...
- -e 文件存在
- -a 文件存在
- 这个选项的效果与-e 相同.但是它已经被弃用了,并且不鼓励使用
- -f file 是一个 regular 文件(不是目录或者设备文件)
- -s 文件长度不为
- -d 文件是个目录-r 文件具有读权限(对于用户运行这个 test)
- -w 文件具有写权限(对于用户运行这个 test)
- -x 文件具有执行权限(对于用户运行这个 test)
2、整数比较
- -eq 等于,如:if [ "$a" -eq "$b" ]
- -ne 不等于,如:if [ "$a" -ne "$b" ]
- -gt 大于,如:if [ "$a" -gt "$b" ]
- -ge 大于等于,如:if [ "$a" -ge "$b" ]
- -lt 小于,如:if [ "$a" -lt "$b" ]
- -le 小于等于,如:if [ "$a" -le "$b" ]
- < 小于(需要双括号),如:(("$a" < "$b"))
- <= 小于等于(需要双括号),如:(("$a" <= "$b"))
- > 大于(需要双括号),如:(("$a" > "$b"))
- >= 大于等于(需要双括号),如:(("$a" >= "$b"))
3、字符串比较
- = 等于,如:if [ "$a" = "$b" ]
- == 等于,如:if [ "$a" == "$b" ],与=等价
- 注意:==的功能在[[]]和[]中的行为是不同的,如下:
- [[ $a == z* ]] # 如果$a 以"z"开头(模式匹配)那么将为 true
- [[ $a == "z*" ]] # 如果$a 等于 z*(字符匹配),那么结果为 true
- [ $a == z* ] # File globbing 和 word splitting 将会发生
- [ "$a" == "z*" ] # 如果$a 等于 z*(字符匹配),那么结果为 true
- 一点解释,关于 File globbing 是一种关于文件的速记法,比如"*.c"就是,再如~也是.
- 但是 file globbing 并不是严格的正则表达式,虽然绝大多数情况下结构比较像.
- != 不等于,如:if [ "$a" != "$b" ]
- 这个操作符将在[[]]结构中使用模式匹配.
- < 小于,在 ASCII 字母顺序下.如:
- if [[ "$a" < "$b" ]]
- if [ "$a" \< "$b" ]
- 注意:在[]结构中"<"需要被转义.
- > 大于,在 ASCII 字母顺序下.如:
- if [[ "$a" > "$b" ]]
- if [ "$a" \> "$b" ]
- 注意:在[]结构中">"需要被转义.
- 具体参考 Example - 来查看这个操作符应用的例子.
- -z 字符串为"null".就是长度为 .
- -n 字符串不为"null"
- 注意:
- 使用-n 在[]结构中测试必须要用""把变量引起来.使用一个未被""的字符串来使用! -z
- 或者就是未用""引用的字符串本身,放到[]结构中
4、linux变量
- $# 是传给脚本的参数个数
- $ 是脚本本身的名字
- $ 是传递给该shell脚本的第一个参数
- $ 是传递给该shell脚本的第二个参数
- $@ 是传给脚本的所有参数的列表
- $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
- $$ 是脚本运行的当前进程ID号
- $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
linux文件测试操作的更多相关文章
- Linux 文件/目录操作详解
目录 Linux 文件/目录操作详解 初识Linux 一.文件/目录显示命令 ls 二.目录创建命令 mkdir 三.目录转移命令 cd 四.当前目录显示命令 pwd 五.文件处理命令 rmdir 六 ...
- Linux文件IO操作函数概述
文件概述 Linux中,一切皆文件.文件为操作系统服务和设备提供了一个简单而一致的接口.这意味着程序完全可以像使用文件那样使用磁盘文件.串行口.打印机和其他设备. 也就是说,大多数情况下,你只需要使用 ...
- Perl文件测试操作和stat函数
在shell中通过test命令或者中括号[]可以进行文件测试以及其它类型的测试,例如判断文件是否存在,比较操作是否为真等等.perl作为更强大的文本处理语言,它也有文件测试类表达式,而且和shell的 ...
- linux 文件常用操作
linux 文件基本操作 新建文件:touch test 不会替换重名文件,并且linux一切都是文件,文件夹和文件不能重名 新建文件夹:mkdir test使用 -p 参数,同时创建父目录(如果不存 ...
- linux条件测试操作(test)和if判断语句,while循环语句,break控制语句和for循环和case多分枝语句和select语句
条件测试操作 条件测试是专为影响"$?"的操作,是条件转移.循环语句的基础 test测试命令: test 用途:测试特定的表达式是否成立,当条件成立时,命令执行后的返回值为0, ...
- Linux文件IO操作
来源:微信公众号「编程学习基地」 目录 文件操作 Linux文件类型 Linux文件权限 修改文件权限 Linux error 获取系统调用时的错误描述 打印错误信息 系统IO函数 open/clos ...
- linux文件IO操作篇 (一) 非缓冲文件
文件IO操作分为 2 种 非缓冲文件IO 和 缓冲文件IO 它们的接口区别是 非缓冲 open() close() read() write() 缓冲 fopen() fclose() fread() ...
- Linux 文件读写操作与磁盘挂载
文件读写 [文件描述符] Linux下,通常通过open打开一个文件,它然后返回给我们一个整数,通过这个整数便可以操作文件,这个整数我们称文件描述符(fd).对应被打开的文件,它也是一种系统资源,那么 ...
- linux 文件夹操作
一.操作命令 1.创建文件夹 : mkdir 2.创建文件 : touch.vi 3.删除文件/文件夹:rm 删除文件夹的时候使用 -r可以循环删除子目录 4.移动文件/文件夹:mv 移动文件夹,使用 ...
随机推荐
- hdu 5111 树上求交
hdu 5111 树上求交(树链剖分 + 主席树) 题意: 给出两棵树,大小分别为\(n1\),\(n2\), 树上的结点权值为\(weight_i\) 同一棵树上的结点权值各不相同,不同树上的结点权 ...
- Disable or enable the IPv6 protocol in Red Hat Enterprise Linux
Resolution Red Hat Enterprise Linux 4, 5 and 6 enable Internet Protocol Version 6 (IPv6) by default. ...
- pagination用法
pagination用法: 1.html 要用两层div <script src="${app }/pc/js/media/pagination.js"></s ...
- linux下修改mysql数据库编码后无法启动解决办法
linux下老版本的Mysql修改数据库编码的方法是 修改my.cnf vi /etc/my.cnf 在[client]下添加 default-character-set=utf8 在[mysqld] ...
- localhost、127.0.0.1和本机IP
localhost 是个域名,不是地址,它可以被配置为任意的 IP 地址,不过通常情况下都指向 127.0.0.1(ipv4)和 [::1](ipv6) 整个127.* 网段通常被用作 loopbac ...
- win7下提权代码
inline BOOL SetPrivilege() { HANDLE hProcess, hToken; TOKEN_PRIVILEGES NewState; LUID luidPrivilegeL ...
- python笔记-冒泡排序【转载】
本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python/ 前言 面试的时候经常有面试官喜欢问如何进行冒泡排序?这个问题相信能难倒一 ...
- Android AutoCompleteTextView控件实现类似百度搜索提示,限制输入数字长度
Android AutoCompleteTextView 控件实现类似被搜索提示,效果如下 1.首先贴出布局代码 activity_main.xml: <?xml version="1 ...
- Vue v-for嵌套数据渲染问题
Vue v-for嵌套数据渲染问题 问题描述: 由于在获取商品子分类的时候,同时需要获取子分类下的商品,那么多层的列表渲染就只能是第一层好用 问题原因: vue在处理多层的渲染的时候,不能直接用等号赋 ...
- 天梯L2-003-测试点
测试点3无法过,题目说是正整数用了int,结果得用double输入才能AC.