获取脚本路径
~~~~
这里我也绕了不少圈吧,之前一直使用pwd,后来发现,pwd获取的是工作目录,如果你在其他目录运行脚本,pwd获取的就会有问题,然后后来使用$0,然后还是有问题调用方式不同会有不同的结果,就比如
使用一个文件调用bash,那$0的值,是那个文件的名字。留下正确的方法:
basepath=$(cd `dirname $0`; pwd)
这里解释一下:
dirname $0:取得当前执行的脚本文件的父目录
cd `dirname $0`:进入这个目录(切换当前工作目录)
pwd:显示当前工作目录(cd执行后的)
设置成环境变量
~~~~ 我们使用sh脚本的时候,都需要我们目标的路径,但是很多时候运行都是在脚本里面,同时不希望带参数,这个时候我们就可以设置环境变量,在安装的脚本里面直接设置好环境变量,这样下次使用就不需要带参数,我们就用上面的路径做测试。
#主要分成两步,第一修改当前环境变量同时生效,第二设置下次启动时,环境变量自动增加
#修改当前运行的环境变量 假设设置的环境变量是TEST_HOME,basepath是上面获取的sh脚本的路径
export TEST_HOME=$basepath
#先修改/etc/profile文件权限为666
chmod 666 /etc/profile
#这里是添加export TEST_HOME=$basepat到/etc/profile文件最后一行
echo "export TEST_HOME=$basepath" >> /etc/profile
#权限改回去,一般默认就是644
chmod 644 /etc/profile
这样一行就可以直接使用$TEST_HOME就可以了。
判断环境变量是否存在
Shell中判断某个环境变量是否存在以及获取某个环境变量的值
#!/bin/bash
if [ $TOMCAT_HOME ];
then
echo "not found "
else
#exsit
fi
#-z 是判断是否字符是不是""
if [ -z $TMPPATH ]; then
echo "no tmppath "
else
fi