1、 BASH_SOURCE
BASH_SOURCE[0] 等價(jià)于 BASH_SOURCE ,取得當(dāng)前執(zhí)行的 shell 文件所在的路徑及文件名
dirname 去除文件名中的非目錄部分,僅顯示與目錄有關(guān)的部分
如 /home/abc/test.sh 內(nèi)容如下:
#!/bin/bash
echo "${BASH_SOURCE[0]}"
echo "${BASH_SOURCE}"
echo "$(dirname "${BASH_SOURCE[0]}")"
echo "$(cd "${ dirname BASH_SOURCE[0]}" && pwd)"
若在當(dāng)前目錄 /home 下執(zhí)行 source ./abc/test.sh ,輸出為:
./abc/test.sh
./abc/test.sh
./abc/
/home/abc
2. $()
$( )和
表示"命令的替換"
原理:將對反引號或$()里的內(nèi)容先進(jìn)行執(zhí)行,然后將執(zhí)行的結(jié)果代換到當(dāng)前命令中
[bob@centos home]$ echo date //直接當(dāng)成字符串輸出
date
[bob@centos home]$ echo `date` //相當(dāng)于函數(shù)調(diào)用,先執(zhí)行date命令
Tue Sep 3 16:10:43 CST 2019
[bob@centos home]$ echo $(date) //作用與上面的命令一樣,但不是所有版本的linux系統(tǒng)都支持
Tue Sep 3 16:11:45 CST 2019
命令嵌套
[bob@centos home]$ echo $(echo $(date))
Tue Sep 3 16:10:43 CST 2019
[bob@centos home]$ echo `echo `date``
date
[bob@centos home]$ echo `echo \`date\``
Tue Sep 3 16:10:43 CST 2019
3、${}
PYAV_PYTHON="${PYAV_PYTHON-python3}"
echo $PYAV_PYTHON
輸出:
python3
PYAV_PIP="${PYAV_PIP-$PYAV_PYTHON -m pip}"
echo $PYAV_PIP
python3 -m pip
4、腳本中命令組合
PYAV_VENV_NAME="$(uname -s).$(uname -r).$("$PYAV_PYTHON" -c '
import sys
import platform
print("{}{}.{}".format(platform.python_implementation().lower(), *sys.version_info[:2]))
')"
其中$()是執(zhí)行()中的命令,將結(jié)果返回給變量。
其中
uname -s
結(jié)果:
Linux
uname -r
結(jié)果:
4.15.0-156-generic
最后一個(gè)
python3 -c '
import sys
import platform
print("{}{}.{}".format(platform.python_implementation().lower(), *sys.version_info[:2]))'
結(jié)果:
cpython3.9
5、|| 運(yùn)算符
command1 || command2
||則與&&相反。如果||左邊的命令(command1)未執(zhí)行成功,那么就執(zhí)行||右邊的命令(command2);或者換句話說,“如果這個(gè)命令執(zhí)行失敗了||那么就執(zhí)行這個(gè)命令。
命令之間使用 || 連接,實(shí)現(xiàn)邏輯或的功能。
6、&& 運(yùn)算符:文章來源:http://www.zghlxwxcb.cn/news/detail-507592.html
command1 && command2
&&左邊的命令(命令1)返回真(即返回0,成功被執(zhí)行)后,&&右邊的命令(命令2)才能夠被執(zhí)行;換句話說,“如果這個(gè)命令執(zhí)行成功&&那么執(zhí)行這個(gè)命令”。文章來源地址http://www.zghlxwxcb.cn/news/detail-507592.html
到了這里,關(guān)于shell腳本中注意事項(xiàng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!