本文介绍: C Shell的语法功能相对于Bourne shellsh)有很大的不同,特别是在脚本编程方面。如果 variable 的值等于某个 casevalue,那么该 case 中的命令会被执行condition一个条件表达式,当其为真时,if语句块中的命令会被执行。如果condition为假,则会继续执行一个else if语句块,直到找到一个条件为真的语句块,或者执行最后else语句块。当i的值小于5时,循环体中的命令会被重复执行。在这个示例中,循环体中的命令是输出变量

下篇文章:CSH 入门基础 2 – csh(C Shell)对文件/目录的判断及对参数的处理

CSH 背景

C Shell(csh)是一种Unix shell,由Bill Joy在1978年开发。它是BSD操作系统中的默认shell,也被许多其他Unix操作系统所采用。C Shell的语法功能相对于Bourne shellsh)有很大的不同,特别是在脚本编程方面。C Shell提供了许多高级功能,如命令行编辑、命令别名、历史记录作业控制和脚本编程等。虽然C Shell在过去受到很多批评,但它仍然是许多Unix用户管理员喜欢使用的一种shell

1.1.1 cshbash 差异

bashshell 默认用户下面的配置文件是:.bashrc, 用户登陆之后,默认执行该配置文件内容,让环境变量生效;
cshshell 默认用户下面的配置文件是:.cshrc, 用户登陆之后,默认执行该配置文件内容。

两者主要有以下区别

1.1.2 CSH IF 语句

condition一个条件表达式,当其为真时,if语句块中的命令会被执行。如果condition为假,则会继续执行下一个else if语句块,直到找到一个条件为真的语句块,或者执行到最后else语句块。

以下是一个使用if语句在csh中判断一个是否偶数示例

csh #!/bin/csh

set num = 6

if ($num % 2 == 0) then 
	echo "$num is even" 
else 
	echo "$num is odd" 
endif

在这个示例中,条件表达式$num % 2 == 0,如果$num除以2的余数为0,则条件为真,输出$num is even“。否则,输出$num is odd“。

其它例子
执行 vusage 命令后,使用 awk 命令打印第二行,使用cut命令只取第40个字符
判断字符是否是“1”, 如果不是“1” 会进行 sleep 5s的操作

#!/bin/csh

set avail=`vusage | awk 'NR==2 {print}' | cut -c 40` 
# if ( 1 ) then;
if ( $avail >= 1) then;
	echo "there are enough board for test, doing test..."
else
	sleep 5
endif

1.1.3 CSH While 语句

#!/bin/csh

while (1)
  body
end
#!/bin/csh

set i = 1
while ($i < 5)
   echo "i is $i"
   @ i++
end

or
在这个示例中,循环体中的命令是输出变量i的值,并将i的值加1。当i的值小于5时,循环体中的命令会被重复执行。最终输出结果是1到5的数字序列

#!/bin/csh

set i = 1
while (1)
    echo "i is $i"
    @ i++
    if ($i &gt;= 5) break
end

These output:

i is 1
i is 2
i is 3
i is 4

1.1.3 CSH switch 语句

以使用csh中的switch语句来实现分支条件判断。具体语法如下:

switch (variable) 
case value1: 
	command1 
	command2 ... 
	breaksw 
case value2: 
	command3 
	command4 ... 
	breaksw ... 
default: 
	command5 
	command6 ... 
endsw 

其中,variable是一个变量,需要匹配到某个值。如果 variable 的值等于某个 case 的 value,那么该 case 中的命令会被执行。如果没有匹配到任何一个case,那么会执行default中的命令。

csh #!/bin/csh

set num = 5

switch ($num) 
case 1: 
	echo "The number is 1" 
	breaksw 
case 2: 
	echo "The number is 2" 
	breaksw 
case 3: 
	echo "The number is 3" 
	breaksw 
default: 
	echo "The number is greater than 3" 
endsw 

在这个示例中,判断$num的值,

  • 如果$num等于1,输出”The number is 1″,
  • 如果$num等于2,输出”The number is 2″,
  • 如果$num等于3,输出”The number is 3″,
  • 否则输出”The number is greater than 3″。

可以通过下面命令来执行CSHELL 脚本:

chmod +x myfile.csh
csh myfile.csh or myfile.csh or ./myfile.csh

下篇文章:CSH 入门基础 2 – csh(C Shell)对文件/目录的判断及对参数的处理


在这里插入图片描述

推荐阅读
https://people.math.sc.edu/Burkardt/examples/c_shell/c_shell.html
https://unix.stackexchange.com/questions/392436/how-to-use-while-loop-in-csh-shell-command-prompt

原文地址:https://blog.csdn.net/sinat_32960911/article/details/130750429

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_12171.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注