Xrisi VI: vim onoma_script (dimiourgia/epe3ergasia arxeiou, kalitero) vi onoma_script (enallaktiko) (Mesa sto VI) :set mouse=v na dwseis adeia sto pontiki i gia na arxiseis na grafeis meta epikolisi #!/bin/bash Esc kai meta :w kai meta 3ana i gia na grafeis gia na swseis to arxeio XWRIS na bgeis apo to VI Esc kai meta :wq gia na swseis to arxeio kai na bgeis apo to VI Esc kai meta :q! gia na bgeis apo to VI XWRIS na swseis to arxeio chmod +x onoma_script gia na dwseis dikaiwmata na tre3ei to script.sh ./onoma_script gia na tre3eis to script.sh ./onoma_script edw ta orismata gia na tre3eis to script.sh me orismata meta xana vim onoma_script gia na 3akampeis sto VI To script prepei PANTA na xekinaei me #!/bin/bash Telestes sigrisis arithmon -eq iso if [ "$a" -eq "$b" ] -ne aniso if [ "$a" -ne "$b" ] -gt megalitero if [ "$a" -gt "$b" ] -ge megalitero i iso if [ "$a" -ge "$b" ] -lt mikrotero if [ "$a" -lt "$b" ] -le mikrotero i iso if [ "$a" -le "$b" ] px # teskarei an to $a einai 1. An nai leei hi, allios bye if [ "$a" -eq 1 ]; then echo "hi" else echo "bye" fi # tsekarei an to $a einai 1. An nai leei hi, allios den leei tipota if [ "$a" -eq 1 ]; then echo "hi" fi # tsekarei an to $a einai 1. An nai leei hi, allios, tsekarei an einai 2, an nai leei hey. Allios tipota if [ "$a" -eq 1 ]; then echo "hi" elif [ "$a" -eq 2 ]; then echo "hey" fi if [ "$a" -eq 1 ]; then echo "hi" elif [ "$a" -eq 2 ]; then echo "hey" else [ "$a" -gt 3 ]; then echo "lol" fi An to $a DEN ("!") einai iso me ena, grapse if ! [ "$a" -eq 1 ]; then echo "den einai iso me 1" fi Telestes sigrisis keimenou = iso == iso != aniso \< mikrotero (se ASCII) \> megalitero (se ASCII) -z keimeno me 0 xaraktires -n keimeno me >0 xaraktires Telestes test arxeion -e yparxei -f einai arxeio -s einai 0 bytes -d einai directory/katalogos/fakelos # px teskarei an den yparxei to arxeio tis metavlitis "$1" if ![ -e "$1" ]; then echo "Error: file doesn't exist" >&2 exit 1 fi print error: echo "error" >&2 # an 8es na grapseis error exit me error: exit 1 # an 8es na teleiwsei to programma me sfalma exit xoris error: exit 0 # xoris sfalma $# metavliti pou periexei ton arithmo ton orismaton $@ metavliti pou periexei ola ta orismata stin seira $1 metavliti pou periexei to proto orisma $2 metavliti pou periexei to deftero orisma $3 $4 klp klp $? metavliti pou periexei to status code tis proigoumenis entolis (0 petyxe, 1 apetyxe) --------------------------- LOOP ORISMATA (ARGUMENTS) gia ka8e orisma =========================== for orisma in "$@" do echo "$orisma" done --------------------------- Gia ka8e orisma, des an den (!) einai fakelos. An den einai, error kai exit for arg in "$@" do if ! [ -d "$arg" ]; then echo "$arg: not a directory" >&2 exit 1 fi done LOOP FILE LINES gia ka8e seira se ena arxeio =========================== while read p; do echo p; done < "$1" --------------------------- Paradeigma Gia ka8e seira tou arxeiou $1 pros8etei to periexomeno sto $sum sum=0 while read p; do let "sum=sum+p" done < "$1" LOOP FILES IN DIRECTORY gia ka8e arxeio mesa se enan fakelo =========================== for file in "$directory"/*; do echo "$file" done --------------------------- CHECK ORISMATA (ARGUMENTS) An ta orismata den einai ena, error kai exit =========================== if [ "$#" -ne 1 ]; then echo "Usage: $0 ARG" >&2 exit 1 fi --------------------------- CHECK AN (PROTO) ORISMA EINAI FAKELOS An den (!) einai fakelos, error kai exit =========================== if ! [ -d "$1" ]; then echo "$1: not a directory" >&2 exit 1 fi --------------------------- Taxinomisi: sort Arithmitiki taxinomisi: sort -n Taxinomisi me basi to deftero pedio sort -n -k 2 Taxinomisi me basi to trito pedio (ta pedia xorizontai me ":") sort -n -k 3 -t : Svise diples, triples seires kai krata mono mia: uniq To idio, alla dipla exei kai arithmo metrisis tis kathe seiras: uniq -c Epilogi protou pediou (ta pedia xorizontai me " " (space): tr -s " " | cut -d" " -f1 Epilogi defterou pediou (ta pedia xorizontai me "-" (pavla): cut -d"-" -f2 CHECK AN YPARXOUN ARI8MOI egrep "[A-Z]" "$1" > /dev/null; # > /dev/null diladi na min graftei to apotelesma stin o8oni if [ "$?" -eq 0 ]; then echo "Yparxoun ari8moi" fi