bash tips and tricks
following code changes cwd to ./step1
cd step_1
./build.sh
./test.sh
adding braces gets the code executed w/o affecting the cwd
(cd step_1 && ./build.sh && ./test.sh)
The bash Variable Index, don't expect info, just index.
Informal and meaningful illustration is following
$1, $2, $3, ... are the positional parameters."$@" is an array-like construct of all positional parameters, {$1, $2, $3 ...}."$*" is the IFS expansion of all positional parameters, $1 $2 $3 ....$# is the number of positional parameters.$- current options set for the shell.$$ pid of the current shell (not subshell).$_ most recent parameter (or the abs path of the command to start the current shell immediately after startup).$IFS is the (input) field separator.$? is the most recent foreground pipeline exit status.$! is the PID of the most recent background command.$0 is the name of the shell or shell script.Formal and more lengthy illustration is following