У меня есть несколько проектов, которые требуют от меня изменения версий Java / Grails / Maven. Я пытаюсь справиться с этим с помощью некоторых скриптов, которые внесут изменения. Например:
#!/bin/sh
export JAVA_HOME=/cygdrive/c/dev/Java/jdk1.5.0_22
export PATH=$JAVA_HOME/bin:$PATH
export GRAILS_HOME=/cygdrive/c/dev/grails-1.0.3
export PATH=$GRAILS_HOME/bin:$PATH
export MAVEN_HOME=/cygdrive/c/dev/apache-maven-2.0.11
export PATH=$MAVEN_HOME/bin:$PATH
which java
which grails
which mvn
Когда это выполняется, он успешно изменяет PATH в контексте сценария, но затем сценарий заканчивается, и никакие изменения не были выполнены.
Как я могу запустить скрипт таким образом, чтобы изменить PATH для оболочки, в которой я сейчас работаю?
Я использую Cygwin.
источник
source
работает только дляbash
. Выход дляksh
:/bin/ksh: source: not found
дляsh
:sh: 0: source: not found
. Ответ ниже должен быть рассмотрен для этих оболочек.bash
центрированный.Вы можете сделать это с помощью встроенного исходного кода :
Некоторые оболочки предоставляют псевдоним с именем source :
источник
Установленный Chocolatey @ unix, вы можете просто запустить RefreshEnv, чтобы получить обновленные переменные среды в текущем сеансе
подробно
источник