参数扩展可以嵌套在Bash中吗?

Tyi*_*ilo 19 bash

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

是否可以嵌套shell参数扩展(${})

如果我想做这样的事情:

foo=( 1 2 3 4 5 )
echo ${${foo[@]/3/bar}:1}
Run Code Online (Sandbox Code Playgroud)

Gil*_*il' 14

不,你不能.(你可以在zsh中,但不能在bash,ksh或其他shell中.)

您需要使用中间变量:

foo=( 1 2 3 4 5 )
tmp=("${foo[@]/3/bar}")
echo "${tmp[@]:1}"
Run Code Online (Sandbox Code Playgroud)


Edo*_*odo 7

据我所知,嵌套shell参数扩展是不可能的.我担心你必须找到另一种方法来实现你所需要的.如果您发布代码,也许我们可以帮助您.