Рейтинг:0

Как написать сценарий оболочки, который перезагрузит терминал в середине сценария, а затем снова начнет использовать команды?

флаг pk

Я недавно узнал о СДКМАН в gitpod.io и я хочу установить разные версии Java с помощью этого менеджера. Но у меня очень старая версия sdkman. Вот мне нужно его обновить, потом установить java. Но я не хочу вводить эти команды в каждый свой репозиторий в gitpod. Вот почему я написал сценарий оболочки предварительные условия.sh и я буду использовать этот файл в каждом репозитории. Сценарий: -

обновление SDK
SDK установить Java 17-открыть

# здесь много команд, но в этом вопросе они не нужны.

Но потом я знал, что после обновления sdkman мне нужно перезапустить терминал. я нашел это исполнительный удар перезапускает терминал. Но когда я добавляю исполнительный удар в моем сценарии оболочки он не выполняет команды ниже исполнительный удар команда. Может ли кто-нибудь предложить мне, как это сделать?

обновление SDK
exec bash #недавно добавлен, но не выполняет команды после него :(
SDK установить Java 17-открыть
rajin100000 avatar
флаг pk
Как это может мне помочь??
Рейтинг:0
флаг cn

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

  1. Откройте родительскую оболочку
  2. Выполнить первую команду
  3. Создайте дочернюю оболочку в родительском скрипте
  4. Эта дочерняя оболочка будет загружена с новыми параметрами среды.
  5. Выполните вторую команду в дочерней оболочке
  6. Выйти из дочерней оболочки
  7. Выйти из родительской оболочки

Для вышеупомянутых команд вы можете использовать что-то вроде этого.

#!/бин/баш
обновление SDK
sudo su - $ USER -c 'sdk install java 17-open'

Первая команда запустится в родительской оболочке. Вторая строка (с sudod su - $USER) откроет новую дочернюю оболочку в том же скрипте и выполнит вторую команду.

PS: Вам будет предложено ввести пароль, если вы не настроили «NOPASSWD» для sudo. Проверять это чтобы настроить это.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.