以下四種:
$(pwd) ## 獲取當前執行(主函式)指令碼的路徑
$(dirname $0) ## 相對路徑
$( cd " $(dirname $0) " && pwd ) ## 當前執行指令碼的絕對路徑
$( cd $( dirname " $ " ) && pwd ) ## 指令碼絕對路徑(這段**所在指令碼的絕對路徑)對於第三種情況,它存在的意義在於,當該指令碼被呼叫時,顯示的路徑是這段**所在指令碼的絕對路徑;而指令碼被引用時,變數列印的路徑是主函式指令碼的路徑。如下有兩個bash指令碼,目錄結構如下:
/tmp/
├── main.sh
├── test/
│ ├── a.sh
-
##>> main.sh
bash test/a.sh
##<<
##>>test/a.sh
a_path=
$(cd "$(dirname $0)
" && pwd)
echo "a.sh a_path=
$"##<<
bash main.sh
看下列印結果:
$ bash main.sh
a.sh a_path=/tmp/test
##>> main.sh
. test/a.sh ## or "source test/a.sh"
## 將a_path變數引用過來了,做乙個列印
echo
$##<<
##>>test/a.sh
a_path=
$(cd "$(dirname $0)
" && pwd)
echo "a.sh a_path=
$"##<<
bash main.sh
同樣看下列印結果:
$ bash main.sh
a.sh a_path=/tmp
/tmp
這裡很神奇,一開始我以為a.sh指令碼中的echo路徑會是a.sh的路徑,執行結果並不是,而單獨執行a.sh會是如下:
$ bash test/a.sh
a.sh a_path=/tmp/test
Shell 讀取指令碼路徑
以下是幾種在 shell 中讀取路徑的方法。返回當前工作目錄絕對路徑 echo pwd 返回 shell 第乙個引數。如果被執行物件位於 path 路徑中,則返回該物件絕對路徑 否則返回被執行物件相對路徑。注意,如果被執行物件是乙個鏈結,則返回鏈結所在位置,而不是真正被執行物件的位置。echo 0返...
獲取當前指令碼目錄路徑
for name in os.listdir if name self.cookie file os.remove str self.cookie file windows獲取當前路徑 相對路徑 以當前根目錄為基準 最近的source 路徑 import os from pathlib import...
shell指令碼之獲取終端資訊
如果要處理大量當前的終端的相關資訊,比如行數,列數,游標位置和遮蓋密碼欄位等,就要用到tput和stty這兩個終端處理工具了.獲取終端的行數和列數 tput cols tput lines 列印當前終端名 tput longname 將游標移到方位 100,100 處 tput cpu 100 10...