持續(xù)更新中......
1诗赌、腳本開始通常有這么一句 Home=$(dirname $(dirname $(readlink -f $0)))
$0
: 表示當前運行的命令名,一般用于腳本中
示例:
$ vi test.sh
$ cat test.sh
#bin/bash
echo "$0"
$ ./test.sh
./test.sh
$ mkdir testFile
$ mv test.sh testFile/
$ ./testFile/test.sh
./testFile/test.sh
dirname
: 輸出已經(jīng)去除了尾部的"/"字符部分的名稱秸弛;如果名稱中不包含"/"铭若,
則顯示"."(表示當前目錄)。
示例:
$ cat test.sh
#bin/bash
dirname /hello/summer/f
dirname kk.txt
$ ./test.sh
/hello/summer
.
readlink
: 是linux系統(tǒng)中一個常用工具胆屿,主要用來找出符號鏈接所指向的位置奥喻。
-f
: -f選項可以遞歸跟隨給出文件名的所有符號鏈接以標準化偶宫,除最后一個外所有組件必須存在非迹。
(簡單地說,就是一直跟隨符號鏈接纯趋,直到直到非符號鏈接的文件位置憎兽,限制是最后必須存在一個非符號鏈接的文件。)
示例:
$ cat test.sh
#bin/bash
s=$(readlink -f $0)
echo "${s}"
$ ./test.sh
/c/Windows/system32/hbl/test.sh
所以用readlink命令我們可以直接獲取$0參數(shù)的全路徑文件名吵冒,然后再用dirname獲取其所在的絕對路徑:
$ cat test.sh
#bin/bash
s=$(dirname $(readlink -f $0))
echo "${s}"
$ ./test.sh
/c/Windows/system32/hbl
$( )
: 命令替換
${ }
: 變量替換