Wanneer ik het volgende commando gebruik
setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH
fout is
bash setenv command is not found
Toen ik het pad van setenv vond met welke opdracht, dan vond ik het volgende pad
(/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)
Answer
setenv
behoort tot (t)csh
, niet naar bash
wat de standaard shell is in CentOS. Gebruik in plaats daarvan
export CLASSPATH="/path/mysql-connector-java-ver-bin.jar:$CLASSPATH"
.
Antwoord
Even beter omdat het schoner is, gebruik voorvoegselnotatie (zonder set
) voor het commando dat je wilt aanroepen:
CLASSPATH=/path/mysql-connector-java-ver-bin.jar:$CLASSPATH ANOTHER_VAR=bla ATHIRD_VAR=blu java -...
Nu kan het java
proces dat u aanroept uw tijdelijke omgevingsvariabele (n) CLASSPATH, ANOTHER_VAR
en ATHIRD_VAR
.
Als je export
hebt gebruikt, dan zullen de variabelen ook globaal (?) worden ingesteld, tenminste in de omgeving van het script. En waarden van variabelen die bestaande waarden zouden worden overschreven door de nieuwe waarden.
Voordelen van prefixnotatie:
- eerdere waarden van een variabele zouden ongewijzigd moeten blijven, dwz in het geval dat de oude waarden worden later nodig, dan is het niet nodig om de oude waarden van de variabelen die al bestonden op te slaan om ze te herstellen na de aanroep.
-
unset
uw tijdelijke variabelen voor opschoningsdoeleinden na de aanroep