在 BASH 脚本中使用字符串作为变量名

2024-05-26

我有以下内容:

#!/bin/sh

n=('fred' 'bob')

f='n'
echo ${${f}[@]}

我需要在替换后执行底线

echo ${n[@]}

有办法做到这一点吗?我刚刚得到

test.sh: line 8: ${${f}}: bad substitution

在我这边。


您可以像这样使用数组进行变量间接寻址:

subst="$f[@]"
echo "${!subst}"

正如 Soulmerge 所指出的,你不应该使用#!/bin/sh为了这。我用#!/usr/bin/env bash作为我的 shebang,无论 Bash 在你的路径中的哪个位置,它都应该起作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 BASH 脚本中使用字符串作为变量名 的相关文章

随机推荐