kommandoen bash setenv blev ikke fundet

Når jeg bruger følgende kommando

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

fejl er

 bash setenv command is not found 

Når jeg finder stien til setenv med hvilken kommando, så fandt jeg følgende sti

 (/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 standardskallen i CentOS. Brug i stedet

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

.

Svar

Selv bedre fordi mere rent, brug præfiksnotation (uden set) på den kommando, du vil påkalde:

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

Nu vil den java -proces, du påberåber dig, samle dine midlertidige miljøvariabler (er) CLASSPATH, ANOTHER_VAR og ATHIRD_VAR.

Hvis du brugte export, så indstilles variablerne også globalt (?), i det mindste i scriptets miljø. Og værdier af variabler, som allerede eksisterede vil blive overskrevet af de nye værdier.

Fordele ved præfiksnotation:

  • tidligere værdier af en variabel skal forblive uændrede, dvs. i tilfælde af at de gamle værdier bliver behov senere, så ville der ikke være behov for at gemme de gamle værdier af de variabler, der allerede eksisterede for at gendanne dem efter påkaldelsen
  • intet behov for unset dine midlertidige variabler til oprydningsformål efter påkaldelsen

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *