Назовите сценарий оболочки “встроенным” в другом сценарии оболочки

Таким образом, нижняя строка здесь - то, что я пытаюсь иметь одну дежурную работу сценария для установки переменных среды (давайте назовем ее setenv.sh) это будет использоваться в последующих сценариях. В Windows (я знаю, это - слово с 4 буквами здесь...), я могу использовать пакетный файл для установки переменной среды для того, после того, как пакетный файл закончен. Я ищу тот же самый эффект.

Однако я только что учился посредством просматривания Интернета, который набор переменных среды в сценарии (иначе оболочка) только сохраняет в дочерних оболочках и не влияет на родительские оболочки. Хорошо безотносительно, хорошо теперь то, что я хочу знать, является банкой, я запускаю скрипт, встроенный в другом сценарии? Встроенным я говорю о чем-то аналогичном C/C++ #include директива. Я хочу это, потому что, если я могу назвать сценарий, как будто он работал в текущем сценарии, мои переменные среды, по крайней мере, сохранятся через продолжительность моего желаемого сценария.

Например, что-то вроде этого:

cat ~/install/setenv.sh | /bin/bash
echo "JBoss home directory is set to $JBOSS_HOME"

Но я понимаю, что даже это не будет вполне работать, и я запускаю дочернюю оболочку с вызова к /bin/bash. Хорошо, если я должен назвать это setenv.sh для каждого сценария я хочу, чтобы это работало встроенный с.

1
задан 12 March 2014 в 00:55

1 ответ

если Вы хотите включать огибающие переменные, можно установить те переменные в файле, и затем source что файл в сценарии.

, Например: в myconfig я мог сделать:

#!/bin/bash
EDITOR=emacs
JBOSS_HOME=/path/to/jboss/home

тогда в моем сценарии оболочки:

#!/bin/bash
source /path/to/myconfig
echo "JBOSS home dir is $JBOSS_HOME" 

и это работало бы.

4
ответ дан 10 November 2019 в 18:45

Другие вопросы по тегам:

Похожие вопросы: