Как поместить параметр командной строки в сценарий оболочки - PullRequest
2 голосов
/ 15 ноября 2010

У меня есть исполняемый сценарий оболочки с именем project2. Следующее - одна из инструкций, которые мой учитель дал мне по проекту.

Этот скрипт должен принимать хотя бы один параметр командной строки: каталог где его вывод должен быть размещен. Если этот каталог не указан на командной строки, скрипт должен использовать разумный каталог по умолчанию.

Подскажите, пожалуйста, как заставить мой скрипт принимать командную строку. Я не делал ничего подобного раньше. Любая помощь будет принята с благодарностью. Большое спасибо.

Ответы [ 2 ]

5 голосов
/ 15 ноября 2010

Для bash параметры командной строки сохраняются в $1, $2 и т. Д., А $# подсчитывает количество. Кроме того, shift можно использовать, чтобы сдвинуть их все «влево» на одну позицию и уменьшить количество.

Следующий скрипт является хорошей отправной точкой для понимания того, как работают параметры:

echo $#
while [[ $# -gt 0 ]] ; do
    echo "$1"
    shift
done

Когда вы запускаете его с:

./myprog.sh hello there my name is "pax     diablo"

вывод:

6
hello
there
my
name
is
pax     diablo

Основная идея вашего задания:

  • проверить счетчик параметров, чтобы увидеть, равен ли он нулю.
  • если он равен нулю, установить переменную в полезное значение по умолчанию.
  • если он не равен нулю, установите эту переменную на основе первого параметра.
  • делайте все, что вам нужно сделать с этой переменной.
1 голос
/ 15 ноября 2010

Взгляните на этот раздел из Руководство по расширенному написанию сценариев Bash .

Я рекомендую вам прочитать все руководство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...