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