1、shell里面配置的环境变量,并且export变量,则新建每一个shell都能利用这些变量。(环境变量定义在/etc/profile中,则每次开机后,环境变量都export一次,即可用于系统任意地方)
在shell脚本程序中定义了一个变量,当该脚本程序运行时,这个定义的变量只是该脚本程序内的一个局部变量,其他的shell不能引用它,要使某个变量的值可以在其他shell中被改变,可以使用export命令对已定义的变量进行输出。命令将使系统在创建每一个新的shell时定义这个变量的一个拷贝。这个过程称之为变量输出。
#!/bin/bash #java environment variables Base_Path=$(cd `dirname $0`; pwd) echo $Base_Path JAVA_HOME=$Base_Path/jdk1.8.0_131 echo $JAVA_HOME JAVA_BIN=$Base_Path/jdk1.8.0_131/bin echo $JAVA_BIN PATH=$PATH:$JAVA_BIN echo $PATH CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar echo $CLASSPATH #cancel LD_LIBRARY_PATH define #LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$Base_Path/lib #echo $LD_LIBRARY_PATH #write java environment variables to /etc/profile if not exist grep -q "export JAVA_HOME" /etc/profile if [ $? -ne 0 ]; then echo "java environment variables not exist,starting define it" echo "export JAVA_HOME="$JAVA_HOME>>/etc/profile echo "export JAVA_BIN="$JAVA_BIN>>/etc/profile echo "export PATH=\$PATH:\$JAVA_BIN">>/etc/profile echo "export CLASSPATH="\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar>>/etc/profile #echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:$Base_Path/lib">>/etc/profile fi echo "Config Java Environment Variables Success" #compile file source /etc/profile #copy lib .so file to /usr/lib for file in $Base_Path/lib/* do #echo $file if test -f $file && [ "${file##*.}" = "so" ]; then echo "copy:"$file cp $file /usr/lib fi done echo "Config .so File Success" #compile .so file ldconfig #copy config.ini file if [ ! -f "/usr/local/config.ini" ]; then cp $Base_Path/lib/config.ini /usr/local echo "cp success" fi echo "Config Success"
2、批处理配置环境变量是永久的(必须支持setx 目前win7以上才有setx语句)
@echo off set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment set basepath=%~dp0 echo 当前路径 %basepath% set javahome=%basepath%jdk1.8.0_131 echo javahome %javahome% set javalib=%basepath%lib echo javalib %javalib% rem LPY echo. echo ************************************************************ echo * * echo * JDK 系统环境变量设置 * echo * * echo ************************************************************ echo. echo === 准备设置环境变量: JAVA_HOME=%javahome% echo === 注意: 如果JAVA_HOME存在,会被覆盖,此操作不可逆的,请仔细检查确认!! === echo. echo === 准备设置环境变量: classPath=%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;. echo === 注意: 如果classPath存在,请仔细检查确认!! === echo. echo === 准备设置环境变量: PATH=%%JAVA_HOME%%\bin echo === 注意: PATH会追加在最后面,echo. set /P EN=请确认后按 回车键 开始设置! echo. echo. echo. echo. rem 1:设置JAVA_HOME echo === 新创建环境变量 JAVA_HOME=%javahome% setx "JAVA_HOME" %javahome% -m echo JAVA_HOME %JAVA_HOME% echo. rem 2:设置classPath echo === 新创建环境变量 classPath=.;%%JAVA_HOME%%\lib;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\lib\tools.jar setx "classPath" ".;%%JAVA_HOME%%\lib;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\lib\tools.jar" -m echo classPath %classPath% echo. rem 3:设置 CATALINA_HOME rem echo == 新创建环境变量 CATALINA_HOME rem setx "CATALINA_HOME" "%basepath%apache-tomcat-8.0.44" -m rem 4:设置path echo === 新追加环境变量 PATH=%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin; echo === 判断是否已设置path rem findstr 查找path是否存在字符串 echo %path% | findstr /c:"%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%javalib%" if errorlevel 1 ( rem 找不到 echo ===path未设置环境变量,追加环境变量 setx path "%path%;%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin;%javalib%" -m ) else ( rem 找到 echo ===path已设置环境变量,跳过设置 ) echo %path% rem 创建文件夹 if not exist C:\Windows\VM md C:\Windows\VM rem 复制配置 if not exist C:\Windows\VM\config.ini copy %javalib%\config.ini C:\Windows\VM\ rem 运行驱动安装 %basepath%HASPUserSetup\HASPUserSetup.exe echo 环境配置完毕 echo. rem LPY Zeus http://write.blog.csdn.net/postedit/9822439 echo === 请按任意键退出! pause>nul