basicsys@mars~/lec5>cat G1 #!/bin/bash for x in $* do echo "$x" done for x in "$*" do echo "$x" done basicsys@mars~/lec5>G1 "ab cd" "ef gh" ab cd ef gh ab cd ef gh basicsys@mars~/lec5>cat G1.1 #!/bin/bash echo "\$1=$1" echo "\$2=$2" echo "\$1=" $1 "without the gershaim" echo "\$2=" $2 "without the gershaim" for x in $* do echo "$x" done for x in "$*" do echo "$x" done basicsys@mars~/lec5>G1.1 "ab cd" "ef gh" $1=ab cd $2=ef gh $1= ab cd without the gershaim $2= ef gh without the gershaim ab cd ef gh ab cd ef gh basicsys@mars~/lec5>cat G2 #!/bin/bash for x in $@ do echo "$x" done for x in "$*" do echo "$x" done basicsys@mars~/lec5>G2 "ab cd" "ef gh" ab cd ef gh ab cd ef gh basicsys@mars~/lec5>cat G3 #!/bin/bash for x in $@ do echo "$x" done for x in "$@" do echo "$x" done basicsys@mars~/lec5>G3 "ab cd" "ef gh" ab cd ef gh ab cd ef gh basicsys@mars~/lec5>cat G4 #!/bin/bash for x in "$@" do echo "$x" done for x do echo "$x" done basicsys@mars~/lec5>G4 "ab cd" "ef gh" ab cd ef gh ab cd ef gh basicsys@mars~/lec5>cat P1 #!/bin/bash for x in $* do echo "$x" done for x in $@ do echo "$x" done for x in "$*" do echo "$x" done for x in "$@" do echo "$x" done basicsys@mars~/lec5>P1 "ab cd" "ef gh" ab cd ef gh ab cd ef gh ab cd ef gh ab cd ef gh basicsys@mars~/lec5>cat P2 #!/bin/bash echo $* echo $# shift echo $* echo $# shift echo $* echo $# basicsys@mars~/lec5>P2 10 20 30 40 10 20 30 40 4 20 30 40 3 30 40 2 basicsys@mars~/lec5>cat P3 #!/bin/bash s=0 while [ $# -ge 1 ] do s=$[$s+$1] shift done echo $s basicsys@mars~/lec5>P3 10 20 30 60 basicsys@mars~/lec5>cat P5 #!/bin/bash if [ 5 -ge 5 ] then echo OK fi basicsys@mars~/lec5>P5 OK basicsys@mars~/lec5>cat P6 #!/bin/bash if [ 5 -gt 5 ] then echo OK else echo not_OK fi basicsys@mars~/lec5>P6 not_OK basicsys@mars~/lec5>cat P7 #!/bin/bash if [ 5 -gt 5 ] then echo "5 > 5" elif [ 5 -eq 5 ] then echo "5=5" fi basicsys@mars~/lec5>P7 5=5 basicsys@mars~/lec5>cat P8 #!/bin/bash if [ 5 -gt 5 ] then echo "5 > 5" elif [ 5 -eq 8 ] then echo "5=8" fi basicsys@mars~/lec5>P8 basicsys@mars~/lec5>cat P9 #!/bin/bash if [ 5 -gt 5 ] then echo "5 > 5" elif [ 5 -eq 8 ] then echo "5=8" else echo not_OK fi basicsys@mars~/lec5>P9 not_OK basicsys@mars~/lec5>cat P10 #!/bin/bash if [ 5 -gt 5 ] then echo "5 > 5" elif [ 5 -eq 8 ] then echo "5=8" elif [ 5 -eq 5 ] then echo "5=5" fi basicsys@mars~/lec5>P10 5=5 basicsys@mars~/lec5>cat P11 #!/bin/bash if [ 5 -gt 5 -o 5 -eq 5 ] then echo "(5 > 5) | (5 = 5)" fi if [ 5 -gt 5 -a 5 -eq 5 ] then echo "(5 > 5) & (5 = 5)" fi basicsys@mars~/lec5>P11 (5 > 5) | (5 = 5) basicsys@mars~/lec5>cat P12 #!/bin/bash if [ a -gt 3 ] then echo "a > 3" fi basicsys@mars~/lec5>P12 ./P12: line 2: [: a: integer expression expected basicsys@mars~/lec5>cat P13 #!/bin/bash if [ a -eq a ] then echo "a = a" fi basicsys@mars~/lec5>P13 ./P13: line 2: [: a: integer expression expected basicsys@mars~/lec5>cat P13.1 #!/bin/bash if [ a = a ] then echo "a = a" fi if [ 01 = 1 ] then echo "01 = 1" fi if [ 8 -ne 1 ] then echo "8 not equal 1" fi if [ ab != ac ] then echo "ab not equal ac" fi if [ ab = ac ] then echo "ab=ac" fi basicsys@mars~/lec5>P13.1 a = a 8 not equal 1 ab not equal ac basicsys@mars~/lec5>cat P14 #!/bin/bash if [ -e F1 ] then echo "File/Directory F1 exists" fi if [ -f F1 ] then echo "File F1 exists" fi if [ -d d1 ] then echo "directory d1 exists" fi basicsys@mars~/lec5>P14 File/Directory F1 exists File F1 exists directory d1 exists basicsys@mars~/lec5>cat P15 #!/bin/bash x=10 y=5 z=8 if [ \( $x -gt $y -o $y -gt $z \) -a \( $x -gt 0 -o $x -le 8 \) ] then echo " ( (x > y) | (y > z) ) & (( x > 0 ) | ( x <= 8 ))" fi basicsys@mars~/lec5>P15 ( (x > y) | (y > z) ) & (( x > 0 ) | ( x <= 8 )) basicsys@mars~/lec5>cat P16 #!/bin/bash read x case $x in a) echo "you typed a";; b|c) echo "you typed b or c";; g*) echo "you typed a string that starts with g";; f??) echo "you typed a string that starts with f followd by exa echo " two charactres";; *) echo "you typed nothing of the first options";; esac basicsys@mars~/lec5>P16 yyyy you typed nothing of the first options basicsys@mars~/lec5>P16 a you typed a basicsys@mars~/lec5>P16 b you typed b or c basicsys@mars~/lec5>P16 fabc you typed nothing of the first options basicsys@mars~/lec5>P16 f1u you typed a string that starts with f followd by exactly two charactres basicsys@mars~/lec5>cat P16.1 #!/bin/bash case "$1" in [a-c]r[a-c]) echo "you typed one of a,b,c followd by r followd" echo " bye one of a,b,c";; *aef[wqs]?) echo "you typed any sring followd by aef followd by" echo "one of w,q,s followd by one character";; ?) echo "you typed exactly one character";; ?*) echo "you typed at least one chacter";; *) echo "you typed nothing of the first options";; esac basicsys@mars~/lec5>P16.1 abcrabc you typed at least one chacter basicsys@mars~/lec5>P16.1 arc you typed one of a,b,c followd by r followd bye one of a,b,c basicsys@mars~/lec5>P16.1 rzqwefzaefw you typed at least one chacter basicsys@mars~/lec5>P16.1 rzqwefzaefwtr you typed at least one chacter basicsys@mars~/lec5>P16.1 rzqwefzaefwt you typed any sring followd by aef followd by one of w,q,s followd by one character basicsys@mars~/lec5>P16.1 w you typed exactly one character basicsys@mars~/lec5>P16.1 you typed nothing of the first options basicsys@mars~/lec5>ls d1 G1.1 lec5e.txt P10 P13.1 P16.1 P5 P9 F1 G2 lec5m.txt P11 P14 P2 P6 test1 F2 G3 old P12 P15 P3 P7 G1 G4 P1 P13 P16 P4 P8 basicsys@mars~/lec5>ls P?? P10 P11 P12 P13 P14 P15 P16 basicsys@mars~/lec5>cat F1 10 10 10 29 29 ab ab ab ab 10 10 basicsys@mars~/lec5>uniq F1 10 29 ab 10 basicsys@mars~/lec5>uniq -c F1 3 10 2 29 4 ab 2 10 basicsys@mars~/lec5>sort F1 10 10 10 10 10 29 29 ab ab ab ab basicsys@mars~/lec5>sort F1 | uniq -c 5 10 2 29 4 ab basicsys@mars~/lec5>cat F2 10 10 10 29 29 zz ab ab ab ab 10 10 zz basicsys@mars~/lec5>uniq -d F2 10 29 ab 10 basicsys@mars~/lec5>uniq -u F2 zz zz basicsys@mars~/lec5>echo abcdabcd | tr a r rbcdrbcd basicsys@mars~/lec5>echo abcdabcd | tr ad rw rbcwrbcw basicsys@mars~/lec5>echo abcdabcd | tr [a-z] [A-Z] ABCDABCD basicsys@mars~/lec5>cat F5 yuasdasdoias asdfasy7fewafy asfdsaadsfdsa aasa basicsys@mars~/lec5>cat F5 | tr [a-z] [A-Z] YUASDASDOIAS ASDFASY7FEWAFY ASFDSAADSFDSA AASA basicsys@mars~/lec5>tr [a-z] [A-Z] asdkfhdsau ASDKFHDSAU asdds ASDDS basicsys@mars~/lec5>cat F5 zyuasdasdoias asdfasy7fewafy asfdsaadsfdsa aasa basicsys@mars~/lec5>echo $[$(echo $(cat F5) | cut -d"y" -f1- | wc -w)-1] 3 basicsys@mars~/lec5>echo $[$(echo $(cat F5) | tr y "\n" | wc -l)-1] 3 basicsys@mars~/lec5>echo aabbaaccccddd | tr -s a abbaccccddd basicsys@mars~/lec5>echo aabbaaccccddd | tr -s ac abbacddd basicsys@mars~/lec5>echo aabbaaccccddd | tr -s [a-z] abacd basicsys@mars~/lec5>echo abc de ef | tr -s " " abc de ef basicsys@mars~/lec5>echo abc de ef | tr -s " " "\n" abc de ef