basicsys@mars~/lec10>x=5 basicsys@mars~/lec10>xx=a basicsys@mars~/lec10>echo ${x}x 5x basicsys@mars~/lec10>echo ${xx} a basicsys@mars~/lec10>x=1234rrt basicsys@mars~/lec10>echo ${#x} 7 basicsys@mars~/lec10>echo -n $x | wc -c 7 basicsys@mars~/lec10>expr match ababc "a+" 0 basicsys@mars~/lec10>expr match ababc "a\+" 1 basicsys@mars~/lec10>expr match ababc "ab\+" 2 basicsys@mars~/lec10>expr match ababc "(ab)\+" 0 basicsys@mars~/lec10>expr match ababc "\(ab\)\+" ab basicsys@mars~/lec10>expr match ababc "\(ab\)\+" ab basicsys@mars~/lec10>expr match ababc "\(\(ab\)\+\)" abab basicsys@mars~/lec10>expr match ababc "\(\(ab\)\+\)d" basicsys@mars~/lec10>expr match ababc "ad" 0 basicsys@mars~/lec10>expr match ababc "\(\(ab\)\+\)" abab basicsys@mars~/lec10>expr ababc : "\(\(ab\)\+\)" abab basicsys@mars~/lec10>expr index abcde db 2 basicsys@mars~/lec10>expr index abcde de 4 basicsys@mars~/lec10>x=abcde basicsys@mars~/lec10>echo ${x:2} cde basicsys@mars~/lec10>echo ${x:1:3} bcd basicsys@mars~/lec10>echo ${x:2:2} cd basicsys@mars~/lec10>echo ${x:2:1} c basicsys@mars~/lec10>echo ${x:2:0} basicsys@mars~/lec10>echo ${x:2:-1} -bash: -1: substring expression < 0 basicsys@mars~/lec10>echo $x abcde basicsys@mars~/lec10>echo ${x#a??} de basicsys@mars~/lec10>echo ${x#a*} bcde basicsys@mars~/lec10>echo ${x##a*} basicsys@mars~/lec10>echo $x abcde basicsys@mars~/lec10>echo ${x#a??} de basicsys@mars~/lec10>echo ${x#a*} bcde basicsys@mars~/lec10>echo ${x##a*} basicsys@mars~/lec10>x=abcdaf basicsys@mars~/lec10>echo ${x#a*} bcdaf basicsys@mars~/lec10>echo ${x#*a} bcdaf basicsys@mars~/lec10>echo ${x##*a} f basicsys@mars~/lec10>echo ${x#b*} abcdaf basicsys@mars~/lec10>echo ${x#a*} bcdaf basicsys@mars~/lec10>echo $x abcdaf basicsys@mars~/lec10>echo ${x%*f} abcda basicsys@mars~/lec10>echo ${x%%*f} basicsys@mars~/lec10>echo $x abcdaf basicsys@mars~/lec10>echo ${x/ab/zzzz} zzzzcdaf basicsys@mars~/lec10>x=${x}abq basicsys@mars~/lec10>echo $x abcdafabq basicsys@mars~/lec10>echo ${x/ab/zzzz} zzzzcdafabq basicsys@mars~/lec10>echo ${x//ab/zzzz} zzzzcdafzzzzq basicsys@mars~/lec10>y=/home/cs/segel/basicsys/lec10/tmp1 basicsys@mars~/lec10>echo $y /home/cs/segel/basicsys/lec10/tmp1 basicsys@mars~/lec10>echo ${y##*/} tmp1 basicsys@mars~/lec10>echo ${y##*/}${y} tmp1/home/cs/segel/basicsys/lec10/tmp1 basicsys@mars~/lec10>cat G1 #!/bin/bash echo -n "" >|tmp x=$(pwd) for y in $(find $x -type f) do echo ${y##*/}${y} >> tmp done sort tmp >| tmp1 for z in $(cat tmp1) do echo \/${z#*/} done basicsys@mars~/lec10>G1 | more /home/cs/segel/basicsys/lec10/eval /home/cs/segel/basicsys/lec10/F1 /home/cs/segel/basicsys/lec10/oldlec10/F1 /home/cs/segel/basicsys/lec10/F2 /home/cs/segel/basicsys/lec10/oldlec10/F2 /home/cs/segel/basicsys/lec10/F3 /home/cs/segel/basicsys/lec10/oldlec10/F3 /home/cs/segel/basicsys/lec10/F3t /home/cs/segel/basicsys/lec10/F4 /home/cs/segel/basicsys/lec10/oldlec10/F4 /home/cs/segel/basicsys/lec10/F /home/cs/segel/basicsys/lec10/G1 /home/cs/segel/basicsys/lec10/H /home/cs/segel/basicsys/lec10/H.rep /home/cs/segel/basicsys/lec10/lec10e.txt /home/cs/segel/basicsys/lec10/lec10e.txt.save basicsys@mars~/lec10>echo a{b,c}d abd acd basicsys@mars~/lec10>echo a{b,c}{1,2}e ab1e ab2e ac1e ac2e basicsys@mars~/lec10>echo {2..6} 2 3 4 5 6 basicsys@mars~/lec10>echo {b..d} b c d basicsys@mars~/lec10>echo {b..e} b c d e basicsys@mars~/lec10>echo {b..e}{1..2} b1 b2 c1 c2 d1 d2 e1 e2 basicsys@mars~/lec10>a=(${a[@]} "aa bb") basicsys@mars~/lec10>echo ${a[@]} aa bb cc dd e aa bb basicsys@mars~/lec10>echo "${a[@]}" aa bb cc dd e aa bb basicsys@mars~/lec10>a=("aa bb" "cc dd" e) basicsys@mars~/lec10>a=("${a[@]}" "aa bb") basicsys@mars~/lec10>echo "${a[@]}" aa bb cc dd e aa bb basicsys@mars~/lec10>echo "${#a[@]}" 4 basicsys@mars~/lec10>echo ${#a[@]} 4 basicsys@mars~/lec10> basicsys@mars~/lec10>for x in "${a[@]}" ; do echo "$x" ; done aa bb cc dd e aa bb basicsys@mars~/lec10>for x in ${a[@]} ; do echo "$x" ; done aa bb cc dd e aa bb basicsys@mars~/lec10>a=(1 2 3) basicsys@mars~/lec10>echo ${a[2]} 3 basicsys@mars~/lec10>a=(1 2) basicsys@mars~/lec10>echo ${a[2]} basicsys@mars~/lec10>a=(1 2 3) basicsys@mars~/lec10>echo ${a[2]} 3 basicsys@mars~/lec10>a=50 basicsys@mars~/lec10>echo ${a[2]} 3 basicsys@mars~/lec10>echo ${a[@]} 50 2 3 basicsys@mars~/lec10>echo ${b[10]} 200 basicsys@mars~/lec10>b=("${b[@]}") basicsys@mars~/lec10>echo ${b[@]} 200 300 basicsys@mars~/lec10>echo ${b[0]} 200 basicsys@mars~/lec10>echo ${b[1]} 300 basicsys@mars~/lec10>a=({1..8}) basicsys@mars~/lec10>echo ${a[@]:2} 3 4 5 6 7 8 basicsys@mars~/lec10>echo ${a[@]:2:2} 3 4 basicsys@mars~/lec10>a[9]=9 basicsys@mars~/lec10>echo ${a[@]:2} 3 4 5 6 7 8 9 basicsys@mars~/lec10>a=(abc abd ababe) basicsys@mars~/lec10>echo ${a[@]/#a?} c d abe basicsys@mars~/lec10>echo ${a[@]/%b?} a a aba basicsys@mars~/lec10>echo ${a[@]/%%b?} abc abd ababe basicsys@mars~/lec10>echo ${a[@]/#a*} basicsys@mars~/lec10>echo "${a[@]/a/zzz}" zzzbc zzzbd zzzbabe basicsys@mars~/lec10>echo "${a[@]//a/zzz}" zzzbc zzzbd zzzbzzzbe basicsys@mars~/lec10>a=({1..7}) basicsys@mars~/lec10>echo ${a[@]} 1 2 3 4 5 6 7 basicsys@mars~/lec10>unset a[2] basicsys@mars~/lec10>echo ${a[@]} 1 2 4 5 6 7 basicsys@mars~/lec10>unset a basicsys@mars~/lec10>echo ${a[@]}