What is /bin/sh -c?
Solution 1:
From the man-page of bash:
-c string
If the
-c
option is present, then commands are read fromstring
. If there are arguments after the string, they are assigned to the positional parameters, starting with$0
.
Example:
$ bash -c ls
will launch bash and execute the command ls
.
/bin/sh
is usually a symlink to a shell.
Solution 2:
With -c (command) it returns to the first shell instead of let open a new one.
It is very similar to: sudo su -l -c 'echo "run a command and return"'
Example:
#sudo su -l knoppix -c 'echo "run a command as ${USER} and return"'
run a command as knoppix and return
#