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