Bash:嵌套变量扩展

里智

如何在bash中嵌套操作?例如我知道

$(basename $var)

会给我路径的最后一部分,

${name%.*}

在扩展之前给了我一切。

如何合并这两个调用,我想执行以下操作:

${$(basename $var)%.*}
阿尔夫

正如@ sid-m的回答所指出的那样,您需要更改两个扩展的顺序,因为其中一个(%东西)只能应用于变量(通过给出其名称):

echo "$(basename "${var%.*}")"

其他要提及的内容:

  • 每次扩展时都应使用双引号,否则如果变量值中有空格,则会遇到麻烦。我已经在回答中做到了。
  • 如果你知道或者期待一个特定的文件扩展名,basename可以去除该关闭你还有:basename "$var" .txt(这将打印foofoo.txt$var)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章