kommandoen bash setenv ble ikke funnet

Når jeg bruker følgende kommando

 setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH 

feil er

 bash setenv command is not found 

Når jeg finner banen til setenv med hvilken kommando, så fant jeg følgende bane

 (/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) 

Svar

setenv tilhører (t)csh, ikke til bash som er standardskallet i CentOS. Bruk i stedet

export CLASSPATH="/path/mysql-connector-java-ver-bin.jar:$CLASSPATH" 

.

Svar

Even bedre fordi mer rent, bruk prefiksnotasjon (uten set) på kommandoen du vil påberope:

CLASSPATH=/path/mysql-connector-java-ver-bin.jar:$CLASSPATH ANOTHER_VAR=bla ATHIRD_VAR=blu java -... 

Nå vil java prosessen du påberoper, samle den midlertidige miljøvariabelen (e) CLASSPATH, ANOTHER_VAR og ATHIRD_VAR.

Hvis du brukte export, vil variablene også bli satt globalt (?), i det minste i skriptets miljø. Og verdier av variabler som allerede eksisterte vil bli overskrevet av de nye verdiene.

Fordeler med prefiksnotasjon:

  • tidligere verdier av en variabel bør forbli uendret, dvs. i tilfelle de gamle verdiene blir nødvendig senere, ville det ikke være behov for å lagre de gamle verdiene til variablene som allerede eksisterte for å gjenopprette dem etter påkallelsen
  • ikke behov for unset dine midlertidige variabler for oppryddingsformål etter påkallelsen

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *