如果有人能够解释我这部分代码的作用,我会很高兴的
[ -n "${0%/*}" ] && cd ${0%/*}
. ./environment.sh
. ./readParams.sh
Run Code Online (Sandbox Code Playgroud)
我知道这个脚本是从./enviroment.sh和读取的./readparams.sh
但我真的很难理解代码的第一行是什么.所以我可以理解这之后的整个过程.
如果你能给我一个网站或任何能帮助我理解这种语法的东西,我会很高兴的.我是shell脚本的初学者,所以任何帮助都表示赞赏.
这是一个shell脚本,而不是python.
[ -n "${0%/*}" ] && cd ${0%/*}
Run Code Online (Sandbox Code Playgroud)
这会将当前工作目录更改为shell脚本所在的目录.
. ./environment.sh
. ./readParams.sh
Run Code Online (Sandbox Code Playgroud)
这会导致两个列出的shell脚本,可能存储在与被调用脚本相同的目录中.
要分解第一行,$0将包含命令的第一个参数,即被调用的脚本.${0%/*}执行参数替换以删除尾部(从最后/开始),这样就可以有效地为您提供目录名称.
[ -n "${0%/*}" ]转换为"if "${0%/*}"结果为非空字符串".
因此,整行将转换为"如果执行的脚本以路径为前缀,则为cd该目录".
ps我不相信这是实现这一目标的最佳方式,但这几乎就是它的作用.就个人而言,我会选择更具可读性cd $(dirname "$0")或更强大的解决方案,请参阅从内部获取Bash脚本的源目录.
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |