basicsys@mars~/lec9>cat A3 #!/bin/bash x=8 function f1 { echo "inside f1 x=$x" x=9 y=10 } echo "outside before calling f1 x=$x y=$y" f1 echo "outside after calling f1 x=$x y=$y" basicsys@mars~/lec9>A3 outside before calling f1 x=8 y= inside f1 x=8 outside after calling f1 x=9 y=10 basicsys@mars~/lec9>cat A4 #!/bin/bash x=8 function f1 { echo "inside f1 x=$x" local x local y=10 echo "inside f1 after local statement x=$x y x=9 } echo "outside before calling f1 x=$x y=$y" f1 echo "outside after calling f1 x=$x y=$y" basicsys@mars~/lec9>A4 outside before calling f1 x=8 y= inside f1 x=8 inside f1 after local statement x= y=10 outside after calling f1 x=8 y= basicsys@mars~/lec9>cat P11 #!/bin/bash echo $1 $2 f1() { echo $1 $2 for x in "$@" do echo "$x" done } f1 f1 "20 30" 40 echo $1 $2 basicsys@mars~/lec9>P11 400 5 400 5 20 30 40 20 30 40 400 5 basicsys@mars~/lec9>cat P1 #!/bin/bash f1() { echo $[$1**2 + $2**2] y=$[$1**2 + $2**2] } f1 2 3 echo y=$y x=$(f1 3 4) echo x=$x echo y=$y echo "$(f1 6 7)" echo y=$y f1 8 9 echo y=$y basicsys@mars~/lec9>P1 13 y=13 x=25 y=13 85 y=13 145 y=145 basicsys@mars~/lec9>cat P1a #!/bin/bash f1() { echo $[$1**2 + $2**2] y=$[$1**2 + $2**2] f2 } f2(){ echo y inside f2=$y } f1 2 3 echo y=$y x=$(f1 3 4) echo x=$x echo y=$y echo "$(f1 6 7)" echo y=$y f1 8 9 echo y=$y basicsys@mars~/lec9>P1a 13 y inside f2=13 y=13 x=25 y inside f2=25 y=13 85 y inside f2=85 y=13 145 y inside f2=145 y=145 basicsys@mars~/lec9>cat P2 #!/bin/bash f1() { echo I am f1 in P2 } f1 basicsys@mars~/lec9>cat f1 #!/bin/bash echo "I am file f1" basicsys@mars~/lec9>P2 I am f1 in P2 basicsys@mars~/lec9>cat P2 #!/bin/bash f1() { echo I am f1 in P2 } f1 basicsys@mars~/lec9>cat f1 #!/bin/bash echo "I am file f1" basicsys@mars~/lec9>P2 I am f1 in P2 basicsys@mars~/lec9>cat P21 #!/bin/bash f1() { echo I am f1 in P2 } f1 ./f1 f1 basicsys@mars~/lec9>P21 I am f1 in P2 I am file f1 I am f1 in P2 basicsys@mars~/lec9>x=8 basicsys@mars~/lec9>echo $x 8 basicsys@mars~/lec9>bash basicsys@mars~/lec9>echo $x basicsys@mars~/lec9>exit exit basicsys@mars~/lec9>echo $x 8 basicsys@mars~/lec9>export x basicsys@mars~/lec9>echo $x 8 basicsys@mars~/lec9>bash basicsys@mars~/lec9>echo $x 8 basicsys@mars~/lec9>cat D3 #!/bin/bash function get_file_name { echo $1 | tr "/" "\n" | tail -1 } export -f get_file_name find -type f -exec get_file_name {} \; find: get_file_name: No such file or directory find: get_file_name: No such file or directory find: get_file_name: No such file or directory basicsys@mars~/lec9>cat D3 #!/bin/bash function get_file_name { echo $1 | tr "/" "\n" | tail -1 } export -f get_file_name find -type f -exec bash -c "get_file_name {}" \; basicsys@mars~/lec9>D3 F2 f2 A2 basicsys@mars~/lec9>cat C1 #!/bin/bash echo -n >| FF for i in $(seq 10) do echo F$i >> FF done basicsys@mars~/lec9>C1 basicsys@mars~/lec9>cat FF F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 basicsys@mars~/lec9>cat C2 #!/bin/bash for i in $(seq 10) do echo I am file F$i >| F$i done basicsys@mars~/lec9>cat F[1-9]* I am file F1 I am file F10 I am file F2 I am file F3 I am file F4 I am file F5 I am file F6 I am file F7 I am file F8 I am file F9 basicsys@mars~/lec9>cat $(cat FF) I am file F1 I am file F2 I am file F3 I am file F4 I am file F5 I am file F6 I am file F7 I am file F8 I am file F9 I am file F10 basicsys@mars~/lec9>getconf ARG_MAX 131072 basicsys@mars~/lec9>cat FF | xargs cat I am file F1 I am file F2 I am file F3 I am file F4 I am file F5 I am file F6 I am file F7 I am file F8 I am file F9 I am file F10 basicsys@mars~/lec9>xargs wc -l F1 F3 F4 F8 1 F1 1 F3 1 F4 1 F8 4 total basicsys@mars~/lec9>seq 16 >| F20 basicsys@mars~/lec9>cat F20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 basicsys@mars~/lec9>cat F20 | xargs -n 4 echo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 basicsys@mars~/lec9>cat G2 #!/bin/bash echo "using axargs" date find ~/win12 -type f | xargs egrep -l abc >|/dev/null date echo "using -exec " date find ~/win12 -type f -exec egrep -l abc {} \; >/dev/null date basicsys@mars~/lec9>G2 using axargs Sun Jan 8 17:15:00 IST 2012 Sun Jan 8 17:15:04 IST 2012 using -exec Sun Jan 8 17:15:04 IST 2012 Sun Jan 8 17:15:25 IST 2012