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
Follow this https://chrisyeh96.github.io/2020/03/28/terminal-colors.html
- C learning repo.
- GNU docs
- What are the special dollar sign shell variables on StackOverflow.