bash - ${var} 参数扩展表达式可以嵌套在 bash 中吗?

标签 bash

我的是这样的:

progname=${0%.*}
progname=${progname##*/}

这可以嵌套(或不嵌套)到一行中,即单个表达式吗?

我正在尝试去除脚本名称的路径和扩展名,以便仅保留基本名称。以上两行工作正常。我的“C”本性只是驱使我更加混淆这些。

最佳答案

Bash 支持间接扩展:

$ FOO_BAR="foobar"
$ foo=FOO
$ foobar=${foo}_BAR
$ echo ${foobar}
FOO_BAR
$ echo ${!foobar}
foobar

这应该支持您正在寻找的嵌套。

关于bash - ${var} 参数扩展表达式可以嵌套在 bash 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/917260/

相关文章:

linux - 如何打印文件中的出现次数?

bash - 为什么我的脚本不能在 FreeBSD 上运行,尽管它似乎可以在 Linux 上运行?就好像 FreeBSD 忽略了 "if"

bash - 在 Bash 中命名常量的约定是什么?

bash - 在终端(bash)中粘贴正确的 if 语句(缩进为 '\t' )给出语法错误

没有 root 访问权限的 mysql 工作台

macos - 在 Swift 中运行 shell 命令

linux - Bash 环境变量未更新

linux - 使用 "logger"登录到单独的日志文件

linux - 如何使用expect替换远程主机上的IP地址

bash - 如何在 Bash 中测试小于或等于字典序的字符串?