příkaz bash setenv nebyl nalezen

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í

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *