linux编程-csh
比较简略, 还没系统学习.
1 数组的使用
set a = (1 2)
echo $a # 1 2
echo $a[1]# 1, 注意元素编号从1开始
echo $a[0]# 返回空, 不报错, 没有此元素, csh语法就是坑.
echo $a[3]# 报错: a: Subscript out of range.
2 if语句
if ($a < 0) then # 括号内外允许有空格, 比bash好点
echo "$a < 0"
else if ($a < 10) then
echo "$a < 10"
else
echo "$a >= 10"
endif
if ($1 == "") then # 注意==两边要加空格, 不然可能会报告"if: Expression Syntax"
set name = $1
endif
3 foreach语句
set a = ("x" "y" "z")
foreach i ($a)
echo $i
end
foreach i (`cat list.txt`)
echo $i
end
foreach idx (`seq 0 10`)
set step = 100
@ p_start = ($idx +0)* $step # 注意 @后面要有空格, +号两边要有空格, *号后面要有空格, 否则报错原因不明
@ p_end = ($idx +1)* $step
echo "$p_start $p_end"
end
4 while语句
set i=0
while ($i < 10)
echo $i
@ i++
end
5 使用sed处理字符串
echo $0 # $0是脚本名, 假设是ex.csh
set word = `echo $0 | sed -e "s/\(\w\+\).csh/\1/"` # 替换字符串的一部分, 赋值给新的变量
echo $word # ex
6 使用csh对文件按行处理
foreach line (`sed 's/xx\(pattern\)/\1/' file.txt`)
echo "$line"
end
7 格式化输出
printf "%05d %s" $num $str