[bash] 幾個之前沒注意過的小知識

 

1.  BASH_SOURCE[0] 是啥意思,以及獲取當前腳本所在目錄html

BASH_SOURCE[0] 等價於 BASH_SOURCE, 取得當前執行的shell文件所在的路徑及文件名。

如/home/abc/test.sh 內容以下:
#!/bin/sh
echo "${BASH_SOURCE[0]}"
echo "${BASH_SOURCE]}"
echo "$( dirname "${BASH_SOURCE[0]}" )"
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo $DIR


若當前目錄在/home/,執行source ./abc/test.sh, 則輸出:

./abc/test.sh

./abc/test.sh

./abc/

/home/abc


總之:

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 獲得shell腳本文件所在完整路徑(絕對路徑)及文件名(不管source,sh,.三種調用方式),且不改變shell的當前目錄。

https://blog.csdn.net/zhaozhencn/article/details/21103367node

 

2.   :- 是什麼意思?shell

${parameter:-word} If parameter is unset or null, the expansion of word is substituted. Otherwise, the value of parameter is substituted.

http://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.htmlbash

https://unix.stackexchange.com/questions/103952/meaning-of-in-bashspa

 

3.   :也能夠用來註釋,和#同樣。。。。.net

相關文章
相關標籤/搜索