linux 下 dirname 0 的作用

2021-09-22 13:01:21 字數 686 閱讀 8753

今天在分析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 全部由...