csh(读作C Shell),是UNIX上的 命令解释程序,执行 读入命令、解释、直到执行。
Shell 程序是 由 Shell 解释的 命令的集合。组合这种命令,可以作成持有多种功能的 新命令。C Shell的动作如下。
△简单的 Shell 编程
#! /bin/csh
……
……
如果 在脚本 第一行写 #!/bin/csh -f ,则不读入~/.cshrc。如果不带 -f 选项,则在脚本里,~/.cshrc中定义的设定(alias等)变为有效。
if(条件) then
命令(任意的行数可)
else if (条件) then
命令(任意的行数可)
else
命令(任意的行数可)
endif
例
#! /bin/csh
if ($#argv != 1) then
echo "a file name should be specified as an argument"
exit
endif
if ((-r ${1}.tex) && (-f ${1}.tex)) then
jlatex $1
else
echo "file ${1}.tex is not a readable file"
exit
endif
rm ${1}.log ${1}.aux
if (!(-z ${1}.dvi)) then
xdvi $1
else
echo "file ${1}.dvi is empty"
endif
并且,文件表达式 如下所示
-d:目录
-f:普通的 文件
-r:可读
-w:可写
-x:可执行
-e:文件的存在与否
-o:所有权
-z:文件大小是否为0
这些表达式 调查 文件的状态,真则值为1,假则值为0
foreach 变量名(参数1 参数2 …… 参数N)
命令1
命令2
·
·
命令N
end
例(在最后 如果没有换行,则不循环)
#! /bin/csh
foreach f (a.tex b.tex c.tex)
echo compiling a TeX file $f
jlatex $f
end <RET>
while(条件表达式)
命令1
命令2
·
·
命令N
end
例子(在最后 如果没有换行,则不循环)
set n=1
while ( $n <= 10 )
echo $n
@ n = $n + 1
end <RET>
C Shell的 运算符
history:h 除掉 路径名的 最后的 部分,取出其余路径名
history:t 仅仅取出路径名的 最后的 部分
history:r 除掉 扩展名
history:e 仅仅 取出 扩展名
history:s/l/r/ 把字符串 l 变换为 r
history:q 把字符串 括起来
history:x 把字符串 以空白、TAB作为分隔,然后括起来
history:g 对所有的句 修饰
history:a 对所有的字符 修饰
history:& 上回的 置换 再进行一次
history:p 不是执行命令,而是仅仅表示
不管哪个 history, 都可以包含 参数指定。
例:把多张图片 一次 转换为 bmp格式(于mogrify相同),变更为 从100开始的 文件名
$ ./img2bmp *.gif
例:img2bmp的 源代码(在最后,如果没有换行,则不循环)
#!/bin/csh
set l = 100
foreach a ($*)
convert $a $l:r.bmp
@ l ++
end <RET>
不使用C Shell,从文件名 除掉 路径和扩展名
$ basename /home/hoge/file1.txt.txt ← 在末尾 指定 待除掉的扩展名
file1
不使用C Shell,仅仅除掉 路径名的 最后的部分
$ dirname /home/hogei/file1.txt
/home/hogei/
特别的 变量
$0 启动Shell时的 命令名
$< 从 标准输入(stdin)读入1行,返回其值
$$ 对该变量求值的 csh进程番号
$! 最后 在后台 执行的 进程的 进程番号
而且,C Shell 不能进行 实数的处理。请利用Perl等。
重定向(Redirect)(但是csh的场合下,取决于 noclobber 的 设定)
操作 | sh系 | csh系(csh,tcsh等) |
stdout的重定向 | > file | > file |
stdout的追加重定向 | >> file | >> file |
stderr的重定向 | 2> file | 无法仅仅取出stderr |
stderr的追加重定向 | 2>> file | 无法仅仅取出stderr |
stdout和stderr的重定向 | > file 2>&1 | >& file |
stdout和stderr的追加重定向 | >> file 2>&1 | >>& file |
通过管道把stdout和stderr向命令重定向 | 2>&1 | command | |& command |
把stdout和stderr向各自的文件重定向 | > file1 2> file2 | 例:(command > file1) >& file2 |
注意:上表中的 | , 实际上请使用半角的竖线 | 。这里只是为了排版方便。
假如是sh系
$ find / -name hoge 2>/dev/null
假如是csh系
$ find / -name hoge |& grep -v "find:"
分享到:
相关推荐
Bash与Csh比较,在linux下的bash与csh的区别及用法,很实用
csh、bash.zip
0812_4.csh
CSH_语法介绍,简单介绍CSH的语法规范及简单示例
鸟形状,Bird.csh for photoshop,鸟图像下载 什么是csh文件? csh文件是就是Photoshop Custom Shape文件。也就是自定义形状文件。
Genesis CSH 教材 每天--制作,谢谢大家!
Quite Imposing plus (简称QI)、PitStop、PDF Toolbox是很多Acrobat用户必装的三大PDF插件。Quite Imposing plus专注PDF拼版,数码快印图文店,印刷厂的用户比较多。这里给大家分享的是Quite Imposing plus 5中文版
3000款常用PS自定义形状,非常使用
csh框架+cxf+spring+hibernate+mysql 注解 annotation xml json, 参考了菠萝大象的文章,感谢。
Microsoft ASP.NET Programming with Microsoft Visual Csh .NET Vers
Bourne shell(s h)、C shell(c s h)以及Korn shell(k s h)是命令解释程序及高级编程语言
用C语言在Linux系统上模拟命令行执行指令,该文件需要在Linux系统上运行,Windows会有异常
简单生活,希望对大家有用!要觉得本资源有价值请分享给您的朋友,生活就是人来人往,分享越多!收获越多!作者:天天ASP家园
实现象ToolTips那样的上下文帮助
some csh scripts, for example, you can find the best machine with light loading, you can find a special process on a list of server.
index_CSH.htm
linux软件包
csh实例 参考: 代码如下: #!/bin/csh -vx #csh -vx show the command before running to help debug #just to check syntax #csh -n $0 #argv if ($#argv < 2) then echo “Sorry, but you entered too few ...
linux软件包
porting.csh