我有變量名如下:使用字符串作爲bash腳本
#!/bin/sh
n=('fred' 'bob')
f='n'
echo ${${f}[@]}
,我需要的是換人後底線執行
echo ${n[@]}
沒有辦法做到這一點?我剛剛得到
test.sh: line 8: ${${f}}: bad substitution
在我的末端。
我有變量名如下:使用字符串作爲bash腳本
#!/bin/sh
n=('fred' 'bob')
f='n'
echo ${${f}[@]}
,我需要的是換人後底線執行
echo ${n[@]}
沒有辦法做到這一點?我剛剛得到
test.sh: line 8: ${${f}}: bad substitution
在我的末端。
你可以做可變間接與這樣的陣列:
subst="$f[@]"
echo "${!subst}"
作爲靈魂樂注意到,你不應該使用#!/bin/sh
這個。我使用#!/usr/bin/env bash
作爲我的shebang,無論Bash在你的路上在哪裏,它都應該工作。
這工作很好!謝謝! – Andy
+1間接擴展比'eval'少得多。 –