zl程序教程

您现在的位置是:首页 >  系统

当前栏目

linux 下shell中if的“-e,-d,-f”

2023-09-11 14:21:13 时间

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