A bash setenv parancs nem található

Amikor a következő parancsot használom

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

hiba

 bash setenv command is not found 

Ha melyik paranccsal találom meg a setenv elérési útját, akkor a következő útvonalat találtam

 (/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) 

Válasz

setenv a (t)csh, nem a bash címre, amely az alapértelmezett shell a CentOS-ban. Használjon helyette

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

.

Válasz

Páros jobb, mert tisztább, használjon előtag jelölést (set nélkül) a meghívni kívánt parancsnál:

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

Most az általad meghívott java folyamat képes lesz összegyűjteni az ideiglenes környezeti változó (ka) t CLASSPATH, ANOTHER_VAR és ATHIRD_VAR.

Ha a következőt használta: export, akkor a változókat globálisan (?) is be fogják állítani, legalábbis a szkript környezetében. És a változók értékei, amelyek A már létező értékeket felülírják az új értékek.

Az előtag jelölésének előnyei:

  • a változó korábbi értékeinek változatlanok maradnak, azaz abban az esetben, ha a régi értékeket szükséges később, akkor nem lesz szükség a már létező változók régi értékeinek mentésére annak érdekében, hogy a meghívás után helyreállíthatók legyenek
  • nem kell unset az ideiglenes változók tisztítási célokra az invokálás után

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük