根据动态值显示数组的内容



我正在尝试稍微优化我的 shell 脚本,并希望能够根据存储在变量中的用户输入显示数组的内容:

这是我的脚本摘录

logArr( firstLogs  secondLogs  thirdLogs  fourthLogs)
firstLogs=( a  b  c  d  e )
secondLogs=( f  g  h  i  j )
thirdLogs=( k  l  m  n  o )
fourthLogs=( p  q  r  s  t )

echo "Please enter a top-level directory for the logger..."
count=1
for i in "${logArr[@]}"
do
echo "$count: $i"
count=`expr $count + 1`
done
read logDir
logDir=`expr $logDir - 1`
logDir=${logArr[$logDir]}

所以在这一点上,我在变量$logDir中设置了用户输入。 有没有办法使用它来显示相应数组的值,即如果他们选择了secondLogs我想然后显示secondLogs数组的内容,而不必使用,如果可能的话,如果 elif elif elif 场景。我已经尝试了一些评估的东西,但我似乎无法让它工作。

任何帮助,不胜感激。

编辑:如果我的要求太模糊,请告诉我,我很乐意澄清任何事情。 谢谢!

logArr=(firstLogs secondLogs thirdLogs fourthLogs)
firstLogs=(a b c d e)
secondLogs=(f g h i j)
thirdLogs=(k l m n o)
fourthLogs=(p q r s t)
echo 'Please enter a top-level directory for the logger...'
select logDir in ${logArr[*]}
do
break
done
set $logDir[*]
echo ${!1}

输出

Please enter a top-level directory for the logger...
1) firstLogs
2) secondLogs
3) thirdLogs
4) fourthLogs
#? 2
f g h i j

相关内容

  • 没有找到相关文章

最新更新