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
posted @ 2021-06-04 14:40  编程驴子  阅读(660)  评论(0编辑  收藏  举报