csh脚本语法实例
csh实例参考:
#!/bin/csh-vx #csh-vxshowthecommandbeforerunningtohelpdebug
#justtochecksyntax #csh-n$0
#argv if($#argv<2)then echo"Sorry,butyouenteredtoofewparameters" echo"usage: $0arg1arg2 exit endif setarg1=$1 setarg2=#2
foreachi($*) echo$i end #executecommands echo"Hellothere`whoami`. Howareyoutoday?" echo"Youarecurrentlyusing`hostname`andthetimeis`date`" echo"Yourdirectoryis`pwd`" whoami hostname date pwd
#var setname=Mark echo$name setname="MarkMeyer"#ifthestringhasspace,mustuse"" echo$name #itmeanssettoNULL setname= unsetname #getuserinput setx=$< setcurrent_user=`whoami`
#buildinvars echo$user #whoamI? echo$status #anumericvariable,usuallyusedtoretunerrorcodes
#Arithmeticvariables @i=2 @k=($x-2)*4 @k=$k+1 @i-- @i++
#array setname=(marksallykathytony) echo$#name #numofthearray echo$name[1] echo$name[4] echo$name[2-3] echo$name[2-] #allelementsfrom2totheend echo$name[1-3] echo$name[$i] setname=($namedoran) setname=(doran$name) setname=($name[1-2]alfie$name[3-]) shiftname #getridofthefristelementofthearray shift#ifnoargumentisgiven,itwillgetridofargv
#Expressionsandoperators == equal (eitherstringsornumbers) != notequal (eitherstringsornumbers) =~ stringmatch !~ stringmismatch <= numericallessthanorequalto >= numericalgreaterthanorequalto > numericalgreaterthan < numericallessthan
-efile filemerelyexists(maybeprotectedfromuser) -rfile fileexistsandisreadablebyuser -wfile fileiswritablebyuser -xfile fileisexecutablebyuser -ofile fileisownedbyuser -zfile filehassize0 -ffile fileisanordinaryfile -dfile fileisadirectory
! --negate && --logicaland || --logicalor
#if-else #runcmdasifexpression if({grep-sjunk$1})then echo"Wefoundjunkinfile$1" endif #checkifthevarisdefined if($?dirname)then ls$dirname endif
if(-esomefile)then grep$1somefile else echo"Grievouserror! Databasefiledoesnotexist". endif
#foreach foreachi(*) 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) #dosomething @n-- end
#switch-case switch($argv[$i]) casequit: break #leavetheswitchstatement caselist: ls breaksw casedelete: caseerase: @k=$i+1 rm$argv[$k] breaksw endsw #heredocument grep$i<<HERE JohnDoe 101SurreyLane London,UK 5E7J2K AngelaLangsbury 99Knightsbridge,Apt.K4 Liverpool JohnMajor 10DowningStreet London HERE
cat>tempdata<<ENDOFDATA 53.394.367.1 48.301.399.9 42.148.692.8 ENDOFDATA
exit0