Bash:用字符串操作(百分号)

mus*_*ero 33 string parameters bash

操纵字符串时,百分号在bash中意味着什么?例如,什么${0%/*}意思?

Ian*_*sco 32

如果您使用@ fedorqui的资源,您将看到它将/*从第一个位置参数的末尾去除最短匹配.一个例子:

example_foo(){
    echo ${1%/*}
}

example_foo path/to/directory/sub_directory
# => path/to/directory
Run Code Online (Sandbox Code Playgroud)

在示例中,我使用了第二个位置参数,因为第一个是函数的名称.

  • 为了解决原始问题,`$ 0`是正在执行的脚本的完整路径名; 给定的表达式剥离了路径的最后一个组件,所以它大致相当于`dirname $ 0`. (2认同)