今天在分析oracle自帶的指令碼sqldeveloper.sh的時候發現的:
[oracle@linux_64 sqldeveloper]$ cat sqldeveloper.sh
#!/bin/bash
cd 「`dirname $0`」/sqldeveloper/bin && bash sqldeveloper $*
# `dirname $0 ` 到底起什麼作用:
[oracle@linux_64 sqldeveloper]$ echo `dirname $0`
dirname: invalid option – 『b』
try `dirname --help』 for more information.
#直接執行並不能得到結果
#在命令列狀態下單純執行 `dirname $0` 是毫無意義的。只有在指令碼中它返回當前路徑的"."
#在/tmp下建立1.sh
[oracle@linux_64 sqldeveloper]$ cat /tmp/1.sh
cd `dirname $0`
echo `pwd`
#執行指令碼
[oracle@linux_64 sqldeveloper]$ sh /tmp/1.sh
/tmp
#可見指令碼並不能執行,因為執行指令碼的目錄下沒有./sqldeveloper/bin目錄
shell指令碼積累 dirname 0
在命令列狀態下單純執行 cd dirname 0 是毫無意義的。因為他返回當前路徑的 這個命令寫在指令碼檔案裡才有作用,他返回這個指令碼檔案放置的目錄,並可以根據這個目錄來定位所要執行程式的相對位置 絕對位置除外 在 home admin test 下新建test.sh內容如下 cd dirname...
linux下dirname的用法
用指令碼獲取指令碼所在的目錄路徑,兩種方法 1.在命令列狀態下單純執行 cd dirname 0 是毫無意義的。因為他返回當前路徑的 這個命令寫在指令碼檔案裡才有作用,他返回這個指令碼檔案放置的目錄,並可以根據這個目錄來定位所要執行程式的相對位置 絕對位置除外 新建test.sh,輸入 bin ba...
linux 中dirname的用法
dirname 命令讀取指定路徑名刪除最後乙個 斜槓 及其後面的字元,保留其他部分,並寫結果到標準輸出。如果最後乙個 後無 字元,dirname 命令使用倒數第二個 並忽略其後的所有字元。dirname 命令在建立路徑名的時候遵從以下規則 如果 path 引數為 雙 斜槓 或者引數 path 全部由...