用指令碼獲取指令碼所在的目錄路徑,兩種方法:
1.在命令列狀態下單純執行 $ cd `dirname $0` 是毫無意義的。因為他返回當前路徑的"."。
這個命令寫在指令碼檔案裡才有作用,他返回這個指令碼檔案放置的目錄,並可以根據這個目錄來定位所要執行程式的相對位置(絕對位置除外)。
新建test.sh,輸入:
#!/bin/bash
#獲得目錄
(cd `dirname $0`;pwd)
其中:
dirname $0,取得當前執行的指令碼檔案的父目錄
cd `dirname $0`,進入這個目錄(切換當前工作目錄)
pwd,顯示當前工作目錄(cd執行後的)
執行 sh test.sh,就可以獲得當前路徑。
2.分開執行
#!/bin/bash
cd $(dirname $0)
path=$(pwd)
echo "path:$"
一般情況下,$var
與$
是沒有區別的,但是用$會比較精確的界定變數名稱的範圍。
$$ :shell本身的pid(processid)
$! :shell最後執行的後台process的pid
$? :最後執行的命令的結束**(返回值)
$0 :shell本身的檔名
1~n:新增到shell的各引數值。$1是第1引數、$2是第2引數…。
linux 下 dirname 0 的作用
今天在分析oracle自帶的指令碼sqldeveloper.sh的時候發現的 oracle linux 64 sqldeveloper cat sqldeveloper.sh bin bash cd dirname 0 sqldeveloper bin bash sqldeveloper dirna...
linux 中dirname的用法
dirname 命令讀取指定路徑名刪除最後乙個 斜槓 及其後面的字元,保留其他部分,並寫結果到標準輸出。如果最後乙個 後無 字元,dirname 命令使用倒數第二個 並忽略其後的所有字元。dirname 命令在建立路徑名的時候遵從以下規則 如果 path 引數為 雙 斜槓 或者引數 path 全部由...
Linux基礎 dirname命令總結
blog 個人本文只總結一些常用的用法,更詳細的說明見man dirname和direname help。目錄dirname命令用於獲取給定路徑的路徑部分。dirname option name.shell指令碼常用語返回指令碼檔案所在路徑。cd dirname 0 獲取網絡卡配置檔案所在路徑 ro...