Let's start by writing a simple script that will explain the meaning of each variable after execution.
# Touch Variable # VI variable
The script reads as follows:
#!/bin/sh
echo "number:$#" echo "Scname:$0" echo "First:" echo "Second:$2" echo "Argume:[email protected]"
echo "Show Parm list:$*" echo "Show Process id:$$" echo "Show Precomm stat: $?" Save exit
Assigning Script Execution permissions
# chmod +x Variable
Execute script
#./variable AA BB number:2
scname:./variable first:aa second:bb ARGUME:AA bb
Show Parm LIST:AA BB Show Process id:24544
Show Precomm stat:0
By displaying the results you can see:
$# is the number of arguments passed to the script, the name of the script itself.
$ $ is the first parameter passed to the shell script The second argument that is passed to the shell script [email protected] is a list of all parameters passed to the script
$* is to display all parameters passed to the script in a single string, with more than 9 parameters, unlike positional variables
$$ is the current process ID number for the script to run
$? is to display the exit status of the last command, 0 means no error, others indicate an error
The various meanings of $ in Linux