csh脚本语法实例
csh脚本语法实例
发布时间:2016-12-28 来源:查字典编辑
摘要:csh实例参考:复制代码代码如下:#!/bin/csh-vx#csh-vxshowthecommandbeforerunningtohelp...

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 parameters"

echo "usage: $0 arg1 arg2

exit

endif

set arg1 = $1

set arg2 = #2

foreach i ($*)

echo $i

end

#execute commands

echo "Hello there `whoami`. How are you today"You are currently using `hostname` and the time is `date`"

echo "Your directory is `pwd`"

whoami

hostname

date

pwd

#var

set name = Mark

echo $name

set name = "Mark Meyer" # if the string has space, must use ""

echo $name

# it means set to NULL

set name =

unset name

# get user input

set x = $<

set current_user = `whoami`

#buildin vars

echo $user # who am I?

echo $status # a numeric variable, usually used to retun error codes

#Arithmetic variables

@ i = 2

@ k = ($x - 2) * 4

@ k = $k + 1

@ i--

@ i++

#array

set name = (mark sally kathy tony)

echo $#name # num of the array

echo $name[1]

echo $name[4]

echo $name[2-3]

echo $name[2-] # all elements from 2 to the end

echo $name[1-3]

echo $name[$i]

set name = ($name doran)

set name = (doran $name)

set name = ($name[1-2] alfie $name[3-])

shift name # get rid of the frist element of the array

shift #if no argument is given, it will get rid of argv

#Expressions and operators

== equal (either strings or numbers)

!= not equal (either strings or numbers)

=~ string match

!~ string mismatch

<= numerical less than or equal to

>= numerical greater than or equal to

> numerical greater than

< numerical less than

-e file file merely exists (may be protected from user)

-r file file exists and is readable by user

-w file file is writable by user

-x file file is executable by user

-o file file is owned by user

-z file file has size 0

-f file file is an ordinary file

-d file file is a directory

! -- negate

&& -- logical and

|| -- logical or

#if-else

# run cmd as if expression

if ({grep -s junk $1}) then

echo "We found junk in file $1"

endif

# check if the var is defined

if ($?dirname) then

ls $dirname

endif

if (-e somefile) then

grep $1 somefile

else

echo "Grievous error! Database file does not exist".

endif

#foreach

foreach i (*)

if (-f $i) then

echo "============= $i ==================="

head $i

endif

if (-d $i) then

(cd $i; headers)

endif

end

#while

while ($#argv > 0)

grep $something $argv[1]

end

@ n = 5

while ($n)

# do something

@ n--

end

#switch-case

switch ($argv[$i])

case quit:

break # leave the switch statement

case list:

ls

breaksw

case delete:

case erase:

@ k = $i + 1

rm $argv[$k]

breaksw

endsw

#here document

grep $i <<HERE

John Doe 101 Surrey Lane London, UK 5E7 J2K

Angela Langsbury 99 Knightsbridge, Apt. K4 Liverpool

John Major 10 Downing Street London

HERE

cat > tempdata <<ENDOFDATA

53.3 94.3 67.1

48.3 01.3 99.9

42.1 48.6 92.8

ENDOFDATA

exit 0

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新linuxshell学习
热门linuxshell学习
脚本专栏子分类