|
|||
Subshell
Just now have been playing with a subshell in OpenBSD.
Three snippets from the Command syntax section ofsh(1): Quote:
A small test shell script: Code:
1 #!/bin/sh 2 3 echo setting 'a=1' ... 4 a=1 5 6 echo About to enter subshell ... 7 ( 8 9 echo From within subshell the value of 'a' : $a 10 11 echo Assigning 2 to 'a' ... 12 a=2 13 14 echo From within subshell the value of 'a' : $a 15 cd /etc 16 echo Working directory changed to $(pwd) 17 echo Leaving subshell 18 19 ) # end of subshell 20 21 echo Back 'home' from trip to subshell ... 22 echo Value of 'a' : $a 23 echo Working directory: $(pwd) Code:
$ ./_subshell | cat -n 1 setting a=1 ... 2 About to enter subshell ... 3 From within subshell the value of a : 1 4 Assigning 2 to a ... 5 From within subshell the value of a : 2 6 Working directory changed to /etc 7 Leaving subshell 8 Back home from trip to subshell ... 9 Value of a : 1 10 Working directory: /home/adriaan/Customize/PARTS So when I have copied /dev/MAKEDEV to /Template.mfs/dev I can start a subshell with (. Then just change dir to /Template.mfs/dev and do # ./MAKEDEV all and leave the subshell with ).That means something like the following is not needed at all: Code:
# --- run MAKEDEV in template directory CURDIR=$(pwd) cd $DESTDIR echo Running $(basename $SOURCE) in $(pwd) ... echo ./MAKEDEV all cd ${CURDIR} # sh -c 'cd /Template.mfs/dev ; ./MAKEDEV all' , which is all right for simple one-liner commands. For multiple commands a subshell looks attractive.For some feedback how this script behaves in other shells like FreeBSD's /bin/sh, or bash on *BSD or Linux, I have attached the script. Please test and let me know
__________________
You don't need to be a genius to debug a pf.conf firewall ruleset, you just need the guts to run tcpdump |
Tags |
sub-shell, subshell |
Thread Tools | |
Display Modes | |
|
|