kommandot bash setenv hittades inte

När jag använder följande kommando

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

fel är

 bash setenv command is not found 

När jag hittar sökvägen till setenv med vilket kommando, så hittade jag följande sökväg

 (/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 tillhör (t)csh, inte till bash vilket är standardskalet i CentOS. Använd istället

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

.

Svar

Even bättre eftersom mer rent, använd prefixnotation (utan set) på kommandot du vill åberopa:

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

Nu kan java -processen som du åberopar samla din tillfälliga miljövariabel (er) CLASSPATH, ANOTHER_VAR och ATHIRD_VAR.

Om du använde export kommer variablerna också att ställas in globalt (?), åtminstone i skriptmiljön. Och värden på variabler som redan existerade skulle skrivas över av de nya värdena.

Fördelar med prefixnotation:

  • tidigare värden för en variabel bör förbli oförändrade, dvs i fall de gamla värdena behövs senare, då skulle det inte vara något behov av att spara de gamla värdena på de variabler som redan fanns för att återställa dem efter anropet
  • inget behov av att unset dina tillfälliga variabler för rengöringsändamål efter anropet

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *