Passing command line arguments through Bash
While brushing on bash (it was a while) I was surprised to notice that the execution of this code is being saved as script.sh:
echo "Arg 0 to script.sh: $0"
echo "Arg 1 to script.sh: $1"
function echo_args
{
echo "Arg 0 to echo_args: $0"
echo "Arg 1 to echo_args: $1"
}
echo_args
like this:
>> ./script.sh argument
output this:
Arg 0 to script.sh: ./script.sh
Arg 1 to script.sh: argument
Arg 0 to echo_args: ./script.sh
Arg 1 to echo_args:
I was surprised to see $ 0 from script.sh passed as $ 0 to echo_args when $ 1 is not handled similarly. It seems to me that it should be both.
Any clarification is appreciated.
+3
source to share