【问题标题】:Bash: manipulating with strings (percent sign)Bash:用字符串操作(百分号)
【发布时间】:2013-05-02 21:07:08
【问题描述】:

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

【问题讨论】:

标签: string bash parameters


【解决方案1】:

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

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

example_foo path/to/directory/sub_directory
# => path/to/directory

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

【讨论】:

  • 为了解决原始问题,$0 是正在执行的脚本的完整路径名;给定的表达式去掉了路径的最后一个部分,所以它大致相当于dirname $0
  • 据我了解,示例中的1表示命令的第二个片段,从0开始计数。
  • @NicolasBarbulesco 是正确的。不过,您可能还会听到将“片段”称为“参数”。
  • ${1} 是对标准输入的引用吗?我可以用管道输入吗?
  • @Tom,$1 指的是path/to/directory/sub_directory,这是example_foo 的第一个参数。你不能把东西放进去。
猜你喜欢
  • 2015-11-17
  • 1970-01-01
  • 2012-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-25
  • 2012-09-02
  • 2015-11-05
相关资源
最近更新 更多