У мене є кілька проектів, які вимагають від мене зміни версій 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
. Відповідь нижче слід враховувати для цих оболонок.