獲取腳本路徑
這裏我也繞了不少圈吧,之前一直使用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