Let me introduce shell variables $0 ... $9, ${10}.., $# before I get to parsing shell command again using eval . Shell assigns the parameters that you pass though a command to its built in variables $1, $2... $9, ${10}... The number of arguments passed are stored in $#. Run this command: set a b c d e f g The command will set a to $1, b to $2, c to $3 ... g to $7 If I run the following command, the output will be c echo $3 Now let's look at the following example: echo $$ 9609 $$ returns the PID of the process echo $$$ 9609$ In the above example $$ is parsed as pre-defined variable $$ and the additional $ is appended to the output. What if I want to print $ followed by PID pf the process? I can do that by preceding that $ with \ \ tells the shell not to interpret the next character's special meaning. echo \$$$ $9609 Now let's get to parsing the command twice. If I want to print the last argument passed, how do I do i...