1、 BASH_SOURCE
BASH_SOURCE[0] 等价于 BASH_SOURCE ,取得当前执行的 shell 文件所在的路径及文件名
dirname 去除文件名中的非目录部分,仅显示与目录有关的部分
如 /home/abc/test.sh 内容如下:
#!/bin/bash
echo "${BASH_SOURCE[0]}"
echo "${BASH_SOURCE}"
echo "$(dirname "${BASH_SOURCE[0]}")"
echo "$(cd "${ dirname BASH_SOURCE[0]}" && pwd)"
若在当前目录 /home 下执行 source ./abc/test.sh ,输出为:
./abc/test.sh
./abc/test.sh
./abc/
/home/abc
2. $()
$( )和
表示"命令的替换"
原理:将对反引号或$()里的内容先进行执行,然后将执行的结果代换到当前命令中
[bob@centos home]$ echo date //直接当成字符串输出
date
[bob@centos home]$ echo `date` //相当于函数调用,先执行date命令
Tue Sep 3 16:10:43 CST 2019
[bob@centos home]$ echo $(date) //作用与上面的命令一样,但不是所有版本的linux系统都支持
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]))
')"
其中$()是执行()中的命令,将结果返回给变量。
其中
uname -s
结果:
Linux
uname -r
结果:
4.15.0-156-generic
最后一个
python3 -c '
import sys
import platform
print("{}{}.{}".format(platform.python_implementation().lower(), *sys.version_info[:2]))'
结果:
cpython3.9
5、|| 运算符
command1 || command2
||则与&&相反。如果||左边的命令(command1)未执行成功,那么就执行||右边的命令(command2);或者换句话说,“如果这个命令执行失败了||那么就执行这个命令。
命令之间使用 || 连接,实现逻辑或的功能。
6、&& 运算符:文章来源:https://www.toymoban.com/news/detail-507592.html
command1 && command2
&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功&&那么执行这个命令”。文章来源地址https://www.toymoban.com/news/detail-507592.html
到了这里,关于shell脚本中注意事项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!