if [ ${0#/} = ${0} ] ; 是什么意思?那么`是什么意思?

What does` if [ ${0#/} = ${0} ] ; then` mean?

看到一段代码具有以下条件:

if [ ${0#/} = [=10=] ] ; then

这是什么意思?

此测试检查脚本是否 运行 具有相对或绝对路径。如果使用相对路径执行,它将评估为 true

变量:

${var#pattern}

扩展为 ${var} 并删除前缀 pattern(在这种情况下,/ 将从变量的开头删除。这称为参数扩展。

变量:

[=11=]

包含脚本的名称或路径。

比较左侧:

${0#/}

将扩展到删除 / 前缀(如果存在)的脚本路径

好的描述是here