gpt4 book ai didi

bash - 不使用 eval 的嵌套 shell 变量

转载 作者:行者123 更新时间:2023-11-29 08:53:13 34 4
gpt4 key购买 nike

我可以在这里去掉 eval 吗?我正在尝试使用由用户输入(国家和操作)确定的适当变量来设置 $current_database

# User input
country="es"
action="sales"

# Possible variables for current_database
final_es_sales_path="blahblah/es/sales.csv"
final_en_support_path="yadayada/en/support.csv"
final_it_inventory_path="humhum/it/inventory.csv"
...

current_database=$(eval echo \${final_${country}_${action}_path})

最佳答案

您可以使用关联数组,连接两个变量的值。例如:

declare -A databases
# initialization
databases["es:sales"]="blahblah/es/sales.csv"
databases["en:support"]="yadayada/en/support.csv"

然后,您可以通过以下方式获取数据库:

echo ${databases["${country}:${action}"]}

这样做的好处是数据库名称仅由一个变量收集。

关于bash - 不使用 eval 的嵌套 shell 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6818948/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com