Opomba : Lupino Korn /bin/ksh dobite z namestitvijo paketa pdksh*.rpm s CDja Linux contrib
Shranite to datoteko kot tekstovno datoteko in na njej izvedite chmod a+rx.
#!/bin/ksh # CVS program supdate # Program za posodobitev datoteke iz CVS v nacinu beri/pisi # Vsako ime datoteke se sestoji iz treh delov: domačega imenika, podimenika # in imena datoteke. Polna pot do datoteke je tako $HOME/$subdir/$fname. # V CVS se ohrani enaka struktura imenikov (z vpeljavo spremenljivke # $subdir), torej se bo pot v CVS glasila $CVSROOT/$subdir/$fname. # V tem programu igrajo 4 spremenljivke ($HOME, $CVSROOT, $subdir in $fname) # pomembno vlogo. Na primer, vzorčne vrednosti so lahko: # HOME=/home/aldev, subdir=myproject/src CVSROOT=/home/cvsroot # in fname=foo.cpp # Pozor: Uporabljajte dvojne narekovaje, da se bodo v vrednostih spremenljivk # ohranili presledki, npr. "$HOME/$subdir", če je $subdir enak 'some foo.cpp' cmdname=`basename $0` if [ $# -lt 1 ]; then print "\nUporaba: $cmdname <ime_datoteke>" exit fi # Zaradi zascite presledkov v $1 uvedi dvojne narekovaje tmpaa="$1" # Preveri, ali datoteka ze obstaja.... if [ $# -gt 0 -a -f $tmpaa ]; then user_perms=" " group_perms=" " other_perms=" " user_perms=`ls -l $tmpaa | awk '{print $tmpaa }' | cut -b3-3 ` group_perms=`ls -l $tmpaa | awk '{print $tmpaa }' | cut -b6-6 ` other_perms=`ls -l $tmpaa | awk '{print $tmpaa }' | cut -b9-9 ` if [ "$user_perms" = "w" -o "$group_perms" = "w" \ -o "$other_perms" = "w" ]; then while : do print "\n$cmdname bo naredil rezervno kopijo delovne datoteke" print "$tmpaa v $tmpaa.supdate_bak pred kakrsnimkoli spajanjem." print "Ali ste prepricani, da zelite spojiti spremebe iz" print -n "skladisca CVS v vaso delovno datoteko? <d/n> [n]: " read ans if [ "$ans" = "d" -o "$ans" = "D" ]; then if [ -f $tmpaa.supdate_bak ]; then print "\nOpozorilo: datoteka $tmpaa.supdate_bak ze obstaja!!" print "Preglejte datoteko $tmpaa.supdate_bak in jo izbrisite." print "Zatem poskusite znova s $cmdname " print "Opuscam $cmdname ...." exit else cp $tmpaa $tmpaa.supdate_bak break fi elif [ "$ans" = "n" -o "$ans" = "N" -o "$ans" = "" -o "$ans" = " " ]; then exit fi done fi fi if [ -d $tmpaa ]; then print "\nPosodobitev imenika je onemogocena, ker cvs update" print "spaja spremebe iz skladisca v delovni imenik." print "Zato podajte ime datoteke za posodobitev - kot je prikazano spodaj: " print " Uporaba: $cmdname <ime_datoteke>" exit # cvs update else cvs update $tmpaa fi print "\nKoncan $cmdname. $cmdname uspesen." print "\n\nRezervna kopija prvotne datoteke je v $tmpaa.supdate_bak ." print "\nPrvotna datoteka je tako SHRANJENA v $tmpaa.supdate_bak ." print "\n\n" #print "\nNasvet: $cmdname <ime datoteke/imenika>\n"