下篇文章:CSH 入门基础 2 – csh(C Shell)对文件/目录的判断及对参数的处理
CSH 背景
C Shell(csh)是一种Unix shell,由Bill Joy在1978年开发。它是BSD操作系统中的默认shell,也被许多其他Unix操作系统所采用。C Shell的语法和功能相对于Bourne shell(sh)有很大的不同,特别是在脚本编程方面。C Shell提供了许多高级功能,如命令行编辑、命令别名、历史记录、作业控制和脚本编程等。虽然C Shell在过去受到很多批评,但它仍然是许多Unix用户和管理员喜欢使用的一种shell。
1.1.1 csh 与 bash 差异
bash 的 shell 默认用户下面的配置文件是:.bashrc
, 用户登陆之后,默认执行该配置文件内容,让环境变量生效;
csh 的 shell 默认用户下面的配置文件是:.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 >= 5) break
end
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
等于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进行投诉反馈,一经查实,立即删除!