linux 下shell中if的“-e,-d,-f”
shell教程参考:
http://www.beylze.cn/shell/
http://www.beylze.com/shell/
http://manual.51yip.com/
http://www.beylze.cn/
1、文件表达式
-e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真 -L filename 如果 filename为符号链接,则为真 -r filename 如果 filename可读,则为真 -w filename 如果 filename可写,则为真 -x filename 如果 filename可执行,则为真 -s filename 如果文件长度不为0,则为真 -h filename 如果文件是软链接,则为真 filename1 -nt filename2 如果 filename1比 filename2新,则为真。 filename1 -ot filename2 如果 filename1比 filename2旧,则为真。
2、整数变量表达式
-eq 等于 -ne 不等于 -gt 大于 -ge 大于等于 -lt 小于 -le 小于等于
3、字符串变量表达式
If [ $a = $b ] 如果string1等于string2,则为真 字符串允许使用赋值号做等号 if [ $string1 != $string2 ] 如果string1不等于string2,则为真 if [ -n $string ] 如果string 非空(非0),返回0(true) if [ -z $string ] 如果string 为空,则为真 if [ $sting ] 如果string 非空,返回0 (和-n类似)
4、逻辑表达式
逻辑非 ! (条件表达式的相反) if [ ! 表达式 ] if [ ! -d $num ] 如果不存在目录$num 逻辑与 –a (条件表达式的并列) if [ 表达式1 –a 表达式2 ] 逻辑或 -o (条件表达式的或) if [ 表达式1 –o 表达式2 ]
5、Ctrl+c、Ctrl+z、Ctrl+d
在Linux系统中,Ctrl+c和ctrl+z都是bai中断命令,但是他们的作用却不du一样zhi.
Ctrl+c是强制中断程序的执行,,进程已经终止
Ctrl+z是将dao任务中止(暂停的意思)。
此时此任务并没有结束,仍然在进程中他只是维持挂起的状态。用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行.
Ctrl+d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。
6、什么时候不适合使用Shell编程
-
资源紧张的项目,特别是那些速度是重要因素的地方(排序,散序,等等)
-
程序要进行很复杂的数学计算,特别是浮点计算,任意精度的计算,或者是复数计算(应该用C++或是FORTRAN代替)
-
要求交叉编译平台的可移植性(使用C或者是Java代替)
-
需要结构化编程的复杂应用(需要变量类型检查和函数原型等等)
-
对于影响系统全局性的关键任务应用。
-
安全非常重要。你必须保证系统完整性和抵抗入侵,攻击和恶意破坏。
-
项目由连串的依赖的各个部分组成。
-
多种文件操作要求(Bash被限制成文件顺序存取,并且是以相当笨拙,效率低下的逐行的存取方式)
-
需要良好的多维数组支持。
-
需要类似链表或树这样的数据结构。
-
需要产生或操作图象或图形用户界面。
-
需要直接存取系统硬件。
-
需要端口号或是socket I/O。
-
需要使用可重用的函数库或接口。
-
所有的私有的不开源的应用程序(Shell脚本的源代码是直接可读,能被所有人看到的)
原文链接:https://blog.csdn.net/superbfly/article/details/49274889