文章目录

    • 1.1 csh 对文件的判断
    • 1.2 csh 脚本对参数的判断处理

上篇文章:CSH 入门基础 1 – csh与 bash 区别 及csh常用语法
下篇文章: CSH 入门基础 3 – csh(C Shell)“onintr” 命令使用介绍

1.1 csh 对文件的判断

在 csh中,可以使用以下语法来判断文件和目录是否存在、是否可读、可写或可执行:
判断文件是否存在if (-e filename) then ... endif
判断目录是否存在if (-d dirname) then ... endif
判断文件或目录是否可读if (-r filename_or_dirname) then ... endif
判断文件或目录是否可写if (-w filename_or_dirname) then ... endif
判断文件或目录是否可执行if (-x filename_or_dirname) then ... endif

其中,filename 和 dirname 分别表示文件名和目录名,filename_or_dirname 表示文件名或目录名。如果判断条件为真,则执行if语句块中的命令,否则不执行。

以下是一个使用csh判断文件是否存在的示例:

#!/bin/cshset filename = "test.txt"if (-e $filename) then echo "$filename exists" else echo "$filename does not exist"endif 

在这个示例中,判断文件 test.txt 是否存在,如果存在,则输出”$filename exists“,否则输出”$filename does not exist“。

1.2 csh 脚本对参数的判断处理

在csh中,可以使用以下语法来判断命令行参数的个数、是否存在以及获取它们的值:

判断命令行参数个数:if ($#argv == n) then ... endif,其中 n 为期望的参数个数。
判断命令行参数是否存在:if ("$1" != "") then ... endif,其中$1表示第一个参数,如果不为空,则参数存在。
获取命令行参数的值:set arg = $n,其中n为参数的位置,arg为变量名。

以下是一个使用csh获取命令行参数并判断参数个数的示例:

#!/bin/cshif ($#argv != 2) then echo "Usage: $0 arg1 arg2" exit 1 endifset arg1=$1 set arg2=$2echo "arg1=$arg1" echo "arg2=$arg2"

在这个示例中,首先判断命令行参数的个数是否为2,如果不是,则输出使用说明并退出程序。如果参数个数正确,则分别获取第一个参数和第二个参数的值,并输出它们的值。

上篇文章:CSH 入门基础 1 – csh与 bash 区别 及csh常用语法
下篇文章: CSH 入门基础 3 – csh(C Shell)“onintr” 命令使用介绍