Thomas Thomas - 3 months ago 8x
Bash Question

what is the hyphen used for in shell script argument parsing?

I'm a new linux learner, and I don't know why we use a hyphen for parameters of Shell. As I know, $1, $2 ... are the first, second parameter.

So my question is:

When do we need/needn't a hyphen for a parameter?

For me, when I write my own shell scripts, I always pass parameters without hyphen. For example, param1 param2 param3

However for other shell scripts, we use hyphen. For example
ls -l myDir
. If I'm right, there are two parameters for
. Why do we use a hyphen for
but not for


Hyphen (-) is used to differentiate the options with other arguments.

I am using your example ls -l myDir to explain. How will you differentiate whether l is option to output long lists or you want to list a file named l?