【发布时间】:2012-12-17 15:31:39
【问题描述】:
用单个变量替换字符串:
FOO=fooo
echo ${FOO%o}
输出是:foo。
如何通过串联来做到这一点?像这样的:
FOO=fooo
echo ${FOO$FOO%o}
输出是(我的愿望):fooofoo。
如果这是可能的话。
换句话说,我想连接几个字符串(使用变量),然后将字符串替换应用于整个字符串(连接所有变量),而不仅仅是单个变量。
【问题讨论】:
-
我不确定我是否理解这个问题。你能显示预期的输出吗?
-
@ShawnChin,我正在寻找一种将替换应用于连接的方法,您展示了连接替换字符串的代码。执行函数的顺序会有所不同。
-
好的。现在我明白了。 AFAIK 没有办法将其作为单个 bash 操作来完成。您需要先连接到一个变量,然后是所需的参数替换
-
@ShawnChin,谢谢,这是一个坏消息,但无论如何,这似乎是一个答案(请将此作为答案发布,而不是评论)。至于你的问题——问题是它破坏了程序的工作流程。当您可以将连接放在另一个函数调用中时,它只会更具可读性,而不是仅仅为了创建另一个变量而停止(因为 bash 限制)。
-
我已按照要求将其改写为答案。
标签: bash string-concatenation substitution