Tôi có một số dự án yêu cầu tôi thay đổi các phiên bản Java / Grails / Maven. Tôi đang cố gắng xử lý việc này với một số tập lệnh sẽ thực hiện các thay đổi. Ví dụ:
#!/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
Khi điều này thực thi, nó thay đổi thành công PATH trong ngữ cảnh của tập lệnh, nhưng sau đó tập lệnh kết thúc và không có thay đổi nào được thực hiện.
Làm cách nào tôi có thể chạy một tập lệnh theo cách thay đổi PATH trong trình bao mà tôi hiện đang làm việc?
Tôi đang sử dụng Cygwin.
source
chỉ hoạt động chobash
. Đầu ra choksh
:/bin/ksh: source: not found
, chosh
:sh: 0: source: not found
. Câu trả lời dưới đây nên được xem xét cho các vỏ này.