当我使用以下命令时
setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH
错误是
bash setenv command is not found
当我通过哪个命令找到 setenv 的路径时,我发现了以下路径
(/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)
答案1
setenv
属于(t)csh
,而不属于bash
CentOS 中的默认 shell。使用
export CLASSPATH="/path/mysql-connector-java-ver-bin.jar:$CLASSPATH"
反而。
答案2
更好,因为更干净,set
在要调用的命令上使用前缀表示法(不带 ):
CLASSPATH=/path/mysql-connector-java-ver-bin.jar:$CLASSPATH ANOTHER_VAR=bla ATHIRD_VAR=blu java -...
现在,java
您调用的进程将能够收集临时环境变量CLASSPATH, ANOTHER_VAR
和ATHIRD_VAR
.
如果您使用export
,那么变量也将被全局设置(?),至少在脚本的环境中。并且,已经存在的变量值将被新值覆盖。
前缀表示法的优点:
- 变量的先前值应保持不变,即在以后需要旧值的情况下,则无需保存已存在的变量的旧值以便在调用后恢复它们
unset
调用后不需要对临时变量进行清理