1. test命令的测试功能。
测试的标志:
(1)关于文件类型的检测 test [-efdbcSpL] filename
-e:该文件名是否存在;
-f:该文件名是否为文件;
-d:该文件名是否为目录;
-b:该文件名是否存在且为一个block device设备;
-c:该文件名是否存在且为一个character device设备;
-S:该文件名是否存在且为一个Socket文件;
-p:该文件名是否存在且为一个FIFO文件;
-L:该文件名是否存在且为一个连接文件。
(2)关于文件权限的检测 test [-r] filename
-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:相等;
-ne:不相等;
-gt:n1大于n2;
-lt:n1小于n2;
-ge:n1大于或等于n2;
-le:n1小于或等于n2。
(5)判定字符串
test -z string:判定字符串是否为空;
test -n string:判定字符串是否为非空;
test str1 = str2:判定str1是否等于str2;
test str1 != str2:判定str1是否不等于str2。
(6)多重条件判定
-a:两个条件同时成立,如test -r file -a -x file,若判断file是否同时具有可读与可执行属性;
-o:任何一个条件成立,如test -r file -o -x file,若判断file是否具有可读或可执行属性;
!:反向状态,如test ! -x file,判断file是否不具备可执行属性。

2. 利用判断符号[]。
[]可以代替test,需要注意中括号的两端需要有空格符来分隔。如,[ -z "$HOME" ],判断HOME变量是否为空。

3. shell script的默认变量。
$0:执行的脚本文件名;
$1,$2,$3...:第n个参数;
$#:后面接的参数的个数;
$@:代表全部的参数,每个变量都是独立的,以空格分隔,使用引号括起来;
$*:代表"$1c$2c$3",c代表分隔符,默认为空格。

4. sh [-nvx] script.sh:shell script的追踪与调试。
参数:
-n:不要执行script,仅检查语法问题;
-v:在执行script前,先将script的内容输出到屏幕上;
-x:将使用到的script内容显示到屏幕上。

【Linux】鸟哥的Linux私房菜基础学习篇整理(七)的更多相关文章

  1. 【Linux】鸟哥的Linux私房菜基础学习篇整理(一)

    最近,一直在写PPC的模拟器和汇编器,也在做设计.所以重新看了看<鸟哥的Linux私房菜>,还是有好多命令不太熟悉.就打算写几篇blog记下来. 1. nl [-bnw] filename ...

  2. 【Linux】鸟哥的Linux私房菜基础学习篇整理(三)

    1. gzip [-cdtv#] filename:压缩.参数:-c:将压缩的数据输出到屏幕上,可通过数据重定向进行处理:-d:解压缩的参数:-t:可以用来检验一个压缩文件的一致性,查看文件有无错误: ...

  3. 【Linux】鸟哥的Linux私房菜基础学习篇整理(六)

    1. 正则表达式特殊符号.[:alnum:]:代表英文大小写字符及数字:[:alpha:]:代表英文大小写字符:[:blank:]:代表空格键与[Tab]键:[:cntrl:]:代表键盘上的控制键,即 ...

  4. 【Linux】鸟哥的Linux私房菜基础学习篇整理(十一)

    1. 直接将命令丢到后台中执行“&”,在命令最后加“&”.    将目前的工作丢到后台中暂停:[Ctrl]+z 2. jobs [-lrs]:查看目前的后台工作状态.参数:-l:除了列 ...

  5. 【Linux】鸟哥的Linux私房菜基础学习篇整理(十)

    1. at [-mldv] TIME/at -c 工作号码:单一工作调度.参数:-m:当at的工作完成后,即使没有输出信息,以email通知用户该工作已完成:-l:相当于atq,列出目前系统上面的所有 ...

  6. 【Linux】鸟哥的Linux私房菜基础学习篇整理(九)

    1. quotacheck [-avugfM] [/mount_point]:扫描文件系统并创建Quota配置文件.参数:-a:扫描所有在/etc/mtab内,含有quota支持的文件系统,加上此参数 ...

  7. 【Linux】鸟哥的Linux私房菜基础学习篇整理(八)

    1. useradd [-u UID] [-g 初始用户组] [-G 次要用户组] [-mM]\   [-c 说明栏] [-d 主文件夹绝对路径] [-r] [-s shell] 用户账号名:新增用户 ...

  8. 【Linux】鸟哥的Linux私房菜基础学习篇整理(五)

    1. type [-tpa] name:查看name命令是否为bash内置命令.参数:type:不加任何参数,type会显示出那么是外部命令还是bash的内置命令:-t:当加入-t参数时,type会通 ...

  9. 【Linux】鸟哥的Linux私房菜基础学习篇整理(四)

    1. VI按键说明.(1)移动光标的方法h或向左箭头:光标向左移动一个字符:j或向下箭头:光标向下移动一个字符:k或向上箭头:光标向上移动一个字符:l或向右箭头:光标向右移动一个字符:进行多次移动,如 ...

随机推荐

  1. 使用 Xcode 和 Android Studio 管理 iOS 和 Android 项目版本

    在移动应用开发和运营的过程中,版本管理是一个老生常谈的基础问题,一些版本的基本概念也常常会困扰我们的研发和运营人员.同时,手动管理软件版本,也常常会因为不小心导致后续的发布和更新问题. 这里,我准备了 ...

  2. Java基础知识强化之集合框架笔记35:List练习之产生10个1~20之间的随机数(要求:随机数不能重复)

    1. 需求:获取10个1-20之间的随机数,要求不能重复 用数组实现,但是数组的长度是固定的,长度不好确定.所以我们使用集合实现. 分析: • 创建产生随机数的对象 • 创建一个存储随机数的集合. • ...

  3. css 权威指南笔记(三)结合css和XHTML

    link rel stylesheet alternate stylesheet(候选样式表) title type media all screen print ..... 内联样式

  4. HTML - 键盘事件

    Keyboard 事件 onkeydown: 在用户按下按键时触发. onkeypress: 在用户敲击按钮时触发. onkeyup: 当用户释放按键时触发. 示例 <!DOCTYPE html ...

  5. EntityFramework在root目录web.config中的配置设置

    未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架提供程序.请确保在应用程序配置文件的“entityFramework”节中注册了该提供程序.有关详 ...

  6. 解读oracle执行计划-待续

    Cost(%CPU): 优化器估算出完成当前操作的代价(包含子操作的代价),它是IO代价和CPU 代价总和.其中IO代价是最基本的代价.而对于CPU代价,在默认情况下,优化器会将CPU代价计算在内,而 ...

  7. magic_quotes_gpc、mysql_real_escape_string、addslashes的区别及用法

    本篇文章,主要先重点说明magic_quotes_gpc.mysql_real_escape_string.addslashes 三个函数方法的含义.用法,并举例说明.然后阐述下三者间的区别.关系.一 ...

  8. C# 多线程、结构体

    struct IpAndPort { public string Ip; public int Port; } private void Form1_Load(object sender, Event ...

  9. 【svn】server建立以及svn使用

    安装好VisualSVN Server后[安装过程看这里],运行VisualSVN Server Manger,下面是启动界面: 好的,下面我来添加一个代码库[Repository],如下图: 按上图 ...

  10. hdoj 2601(判断N=i*j+i+j)

    Problem E Time Limit : 6000/3000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Sub ...