Když používám následující příkaz
setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH
chyba je
bash setenv command is not found
Když najdu cestu setenv kterým příkazem, pak jsem našel následující cestu
(/usr/kerberos/sbin:/usr/kerberos/bin:/home/ec2/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/ec2/bin:/root/bin)
Odpověď
setenv
patří do (t)csh
, nikoli bash
, což je výchozí prostředí v CentOS. Místo toho použijte
export CLASSPATH="/path/mysql-connector-java-ver-bin.jar:$CLASSPATH"
.
Odpovědět
Sudý lepší, protože čistší, použijte předponu (bez set
) u příkazu, který chcete vyvolat:
CLASSPATH=/path/mysql-connector-java-ver-bin.jar:$CLASSPATH ANOTHER_VAR=bla ATHIRD_VAR=blu java -...
Nyní java
proces, který vyvoláte, bude moci shromáždit vaše dočasné proměnné prostředí CLASSPATH, ANOTHER_VAR
a ATHIRD_VAR
.
Pokud jste použili export
, budou proměnné nastaveny také globálně (?), alespoň v prostředí skriptu. A hodnoty proměnných, které již existující by byly přepsány novými hodnotami.
Výhody zápisu předpony:
- předchozí hodnoty proměnné by měly zůstat nezměněny, tj. v případě, že jsou staré hodnoty později potřebné, pak by nebylo nutné ukládat staré hodnoty proměnných, které již existovaly, aby bylo možné je po vyvolání obnovit
- není třeba
unset
vaše dočasné proměnné pro účely vyčištění po vyvolání