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

时间:2011-07-17 13:21:36

标签: bash

  

可能重复:
  Can ${var} parameter expansion expressions be nested in bash?

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

如果我想做这样的事情:

foo=( 1 2 3 4 5 )
echo ${${foo[@]/3/bar}:1}

2 个答案:

答案 0 :(得分:13)

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

您需要使用中间变量:

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

答案 1 :(得分:7)

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