本文主要是介绍csh和bash的语法对比,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一般来说,能用bash 语言编程就不用csh编程,因为bash语言的使用体验更好,但是某些情况的terminal窗口就是csh语言,因而,用csh语言会更适合。下面将bash和csh,做一些对比,方便将bash转变成csh.
一,关于变量设置,和环境变量设置
bash:
a=`pwd` # =号两边必须无空格,命令转变量也可以用$(pwd)export b=1 # 设置环境变量
csh
set a = `pwd` # 用关键词 set, = 两边必须有空格,命令转变量只能用``setenv b 1 # 设置环境变量
二,关于数组
bash:
array=(1 2 3 4 5) # 数组元素用空格隔开${array[@]} #或者 ${array[*]} # @ 或者星都可以代表所有元素${#@array[@]} # 表示数组个数for i in ${array[@]}; do # 使用遍历的时候的语法echo $idone
csh:
set array = (1, 2, 3, 4, 5,) # 数组元素用,隔开,或者用空格隔开也可以${array[*]} # 只能用星号代表所有元素$#array # 表示数组个数foreach i (${array[*]}) # 遍历的时候数组外要再加一对括号echo $iend
三,关于判断if
bash:
if [[ a != b ]];thenecho "ok"fi
csh: csh的判断条件一般加双引号,例如-f “/path/abc.py”
if (a != b ) then echo "ok" endif
四, 关于while循环
bash:
while ( true )
doecho "ok"
done
csh
while (1)echo "ok"end
五,关于函数
bash:
function abcd() {a=1}
csh: csh没有函数,只能使用label和goto
goto labellabel:......
如果你想快速执行Cshell, 即不想读入Cshell的启动程序(.cshrc等), 在script文件的第一行应该用类似下面的格式:
#!/bin/csh -f
六,关于一些不同的技巧
bash中获取文件所在的目录位置
CURDIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd )
csh中则是:
set script_dir=`readlink -f -- "$0"`
set CURDIR=`dirname -- $script_dir`
参考文章链接:
http://blog.sina.com.cn/s/blog_13f7886010102xqju.html
关于cshell的最详细文档可以参考这个http://sunner.cn/courses/OS/Learning_UNIX.pdf
这篇关于csh和bash的语法对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!