2016-03-09 3 views
1

У меня есть сценарий bash, из которого мне нужно запустить другой скрипт с source. Это нормально работает, но мне также нужно передать параметры второго скрипта.запустить другой скрипт bash из основного сценария bash

Пример:

source /usr/local/scripts/parallel.sh test --gnu 

Так что мне нужно, чтобы начать parallel.sh с данным источника данных файл с именем test, и мне также нужно назначить параметр --gnu в конце. Но он не распознает файл и параметр.

+0

Зачем вам его источник? Вы не можете просто назвать это нормально? – choroba

+0

Вы имеете в виду ./path/to/script? – esha

+0

Да. Sourcing используется, когда вы хотите импортировать переменные функций из сценария. – choroba

ответ

1

source command скорее всего не то, что вы ищете.

Когда скрипт запускается с использованием источника, он запускается в пределах существующей оболочки, любые переменные, созданные или измененные скриптом, останутся доступными после завершения сценария. Напротив, если скрипт запускается как имя файла, тогда для запуска скрипта будет создана отдельная подоболочка (с полностью отдельным набором переменных).

Таким образом, если вам не требуется доступ к переменным или функциям внутри parallel.sh, просто вызовите его непосредственно:

/usr/local/scripts/parallel.sh test --gnu 

Пока скрипт исполняемым (chmod +x /usr/local/scripts/parallel.sh) и настроить для работы с параметрами, которые вы Прохождение ($1 будет содержать «тест», а $2 будет содержать «--gnu»), он должен работать нормально.

Смежные вопросы