2016-06-29 5 views
1

Я новый ученик linux, и я не знаю, почему мы используем дефис для параметров Shell. Как я знаю, $ 1, $ 2 ... являются первым, вторым параметром.
Что такое дефис, используемый для разбора аргументов сценария оболочки?

Так что мой вопрос:
Когда нам нужно/не нужно дефис для параметра?

Для меня, когда я пишу собственный скрипт , я всегда передаю параметры без дефиса. Например, myShell.sh param1 param2 param3.

Однако для других сценариев оболочки мы используем дефис. Например, ls -l myDir. Если я прав, есть два параметра для ls: -l и myDir. Почему мы используем дефис для l, но не для myDIr?

+4

См. [Аргументы, параметры и тире] (http://unix.stackexchange.com/questions/128778/arguments-options-and-dashes/128810#128810). – agc

+0

Re: 'когда я пишу некоторые из своих собственных оболочек' - вы имели в виду * shell-скрипты *? – agc

+0

@agc да да. – Yves

ответ

1

Hyphen (-) Используется для разграничения параметров с другими аргументами.

Я использую ваш пример ls -l myDir для объяснения. Как вы будете различать, может ли опция l выводить длинные списки или вы хотите перечислить файл с именем l?