Shell中的判断标志
| 測試的標誌 | 代表意義 |
| 1. 關於某個檔名的『檔案類型』判斷,如 test -e filename 表示存在否 | |
| -e | 該『檔名』是否存在?(常用) |
| -f | 該『檔名』是否存在且為檔案(file)?(常用) |
| -d | 該『檔名』是否存在且為目錄(directory)?(常用) |
| -b | 該『檔名』是否存在且為一個 block device 裝置? |
| -c | 該『檔名』是否存在且為一個 character device 裝置? |
| -S | 該『檔名』是否存在且為一個 Socket 檔案? |
| -p | 該『檔名』是否存在且為一個 FIFO (pipe) 檔案? |
| -L | 該『檔名』是否存在且為一個連結檔? |
| 2. 關於檔案的權限偵測,如 test -r filename 表示可讀否 (但 root 權限常有例外) | |
| -r | 偵測該檔名是否存在且具有『可讀』的權限? |
| -w | 偵測該檔名是否存在且具有『可寫』的權限? |
| -x | 偵測該檔名是否存在且具有『可執行』的權限? |
| -u | 偵測該檔名是否存在且具有『SUID』的屬性? |
| -g | 偵測該檔名是否存在且具有『SGID』的屬性? |
| -k | 偵測該檔名是否存在且具有『Sticky bit』的屬性? |
| -s | 偵測該檔名是否存在且為『非空白檔案』? |
| 3. 兩個檔案之間的比較,如: test file1 -nt file2 | |
| -nt | (newer than)判斷 file1 是否比 file2 新 |
| -ot | (older than)判斷 file1 是否比 file2 舊 |
| -ef | 判斷 file1 與 file2 是否為同一檔案,可用在判斷 hard link 的判定上。 主要意義在判定,兩個檔案是否均指向同一個 inode 哩! |
| 4. 關於兩個整數之間的判定,例如 test n1 -eq n2 | |
| -eq | 兩數值相等 (equal) |
| -ne | 兩數值不等 (not equal) |
| -gt | n1 大於 n2 (greater than) |
| -lt | n1 小於 n2 (less than) |
| -ge | n1 大於等於 n2 (greater than or equal) |
| -le | n1 小於等於 n2 (less than or equal) |
| 5. 判定字串的資料 | |
| test -z string | 判定字串是否為 0 ?若 string 為空字串,則為 true |
| test -n string | 判定字串是否非為 0 ?若 string 為空字串,則為 false。 註: -n 亦可省略 |
| test str1 = str2 | 判定 str1 是否等於 str2 ,若相等,則回傳 true |
| test str1 != str2 | 判定 str1 是否不等於 str2 ,若相等,則回傳 false |
| 6. 多重條件判定,例如: test -r filename -a -x filename | |
| -a | (and)兩狀況同時成立!例如 test -r file -a -x file,則 file 同時具有 r 與 x 權限時,才回傳 true。 |
| -o | (or)兩狀況任何一個成立!例如 test -r file -o -x file,則 file 具有 r 或 x 權限時,就可回傳 true。 |
| ! | 反相狀態,如 test ! -x file ,當 file 不具有 x 時,回傳 true |
参考:http://linux.vbird.org/linux_basic/0340bashshell-scripts.php#dis
Shell中的判断标志的更多相关文章
- shell中条件判断if中的-z到-d的意思
shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 ...
- shell 中如何判断前一个命令是否执行成功
shell 中如何判断前一个命令是否执行成功 通过判断返回值来解决: if [ $? -eq 0 ];then 命令正确的分支 else 命令失败的分支 fi
- 在shell中如何判断字符串是否为有效的IP地址【转】
转自 在shell中如何判断字符串是否为有效的IP地址_echoisecho_新浪博客http://blog.sina.com.cn/s/blog_53a844e50100xxus.html 近来需要 ...
- shell中条件判断if中的-z到-d
shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真.[ -c FILE ] 如果 ...
- Shell中比较判断
一.shell判断数组中是否包含某个元素:ary=(1 2 3)a=2if [[ "${ary[@]}" =~ "$a" ]] ; then echo & ...
- shell 中的判断
一.if的基本语法: if [ command ];then 符合该条件执行的语句 elif [ command ];then 符合该条件执行的语句 else 符合该条件执行的语句 ...
- 【转】shell中如何判断一个变量是否为空
判断一个脚本中的变量是否为空,我写了一个这样的shell脚本: #!/bin/sh #filename: test.sh para1= if [ ! -n $para1 ]; then echo &q ...
- shell中如何判断某一命令是否存在
参考: http://www.cnblogs.com/tuzkee/p/3755230.html https://segmentfault.com/q/1010000000156870 http:// ...
- shell 中条件判断
if 中的 -z 到 -d 的意思 2011-09-05 10:30 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ ...
随机推荐
- jenkins使用简记
一.安装 jenkins有多种安装方式,可以使用内嵌的Servlet容器运行,也可以基于Apache运行,也可以安装成Linux或Windows服务. 1.使用 Servlet 容器运行 从官网下载 ...
- filterHTML
function filterHTML(source) { return !source ? "" : source.replace(/]*>/g, "" ...
- jvm的内部体系结构浅析
转自:http://www.cnblogs.com/evan2012/archive/2012/05/09/2489417.html 1.jvm的内部体系结构浅析 2.jvm的几个运行时数据区域 3. ...
- (转)Intent flag 与启动模式的对应关系
原文地址:http://www.cnblogs.com/ttylinux/p/4069513.html Activity有四种启动模式: 1.standard(标准) 2.singleTop ...
- 执行shell出现bad interpreter
执行shell出现bad interpreter:No such file or directory linux执行shell出现bad interpreter:No such file or dir ...
- monkeyrunner API接口文档内容
用python编写脚本 1.导入模块: MonkeyRunner MonkeyDevice MonkeyImage ps:如果给导入模块起别名,就应该使用别名,而不能使用原名,否则会出现错误. f ...
- vim技巧
(三)多窗口操作 改变高度:res +n(增加n行的高度)n ctrlw +/-改变宽度:vertical res +n(增加n列的宽度)n ctrl w >/< (一)缩进 vim提供 ...
- CentOS7 词典
goldendict sudo yum install goldendict打开goldendict,阅读welcome,添加本地词典,在http://abloz.com/huzheng/stardi ...
- go:匿名函数与闭包
一.匿名函数 定义:没有函数名的函数. 作用:在go语言中目前了解的作用就是用于构成闭包. *注:由于javascript不存在块级作用域,故匿名函数常用来包含代码以不污染全局命名空间,运行后销毁环境 ...
- Oracle 11g RAC 卸载CRS步骤
Oracle 11g之后提供了卸载grid和database的脚本,可以卸载的比较干净,不需要手动删除crs ##########如果要卸载RAC,需要先使用dbca删除数据库,在执行下面的操作### ...