bash setenv commando is niet gevonden

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

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *