Linux变量/数组分配中的Bash脚本
我想让我的shell脚本类似于在快餐店点菜。 但是,我不知道如何设置数组来确定客户希望订购的饮料的大小。我的尺码如下:Linux变量/数组分配中的Bash脚本,linux,bash,scripting,Linux,Bash,Scripting,我想让我的shell脚本类似于在快餐店点菜。 但是,我不知道如何设置数组来确定客户希望订购的饮料的大小。我的尺码如下: small=12oz medium=16oz large=20oz xlarge =24oz 我把我的shell脚本编程为读取客户输入的$size,但我不知道如何在客户声明其大小时将“small”一词翻译成oz数量。我打算使用eval“$size=“`选项,但我应该设置什么使其可以变化?x是否足够 谢谢!尝试关联查找 $: declare -A drink=( [sm
small=12oz
medium=16oz
large=20oz
xlarge =24oz
我把我的shell脚本编程为读取客户输入的$size,但我不知道如何在客户声明其大小时将“small”一词翻译成oz数量。我打算使用eval
“$size=“`选项,但我应该设置什么使其可以变化?x是否足够
谢谢!尝试关联查找
$: declare -A drink=(
[small]=12oz
[medium]=16oz
[large]=20oz
)
$: choice=medium
$: echo "${drink[$choice]}"
16oz
$: drink[xlg]=32oz
$: choice=xlg
$: echo "${drink[$choice]}"
32oz
不过,请注意语法,这有点麻烦。尝试关联查找
$: declare -A drink=(
[small]=12oz
[medium]=16oz
[large]=20oz
)
$: choice=medium
$: echo "${drink[$choice]}"
16oz
$: drink[xlg]=32oz
$: choice=xlg
$: echo "${drink[$choice]}"
32oz
不过,请注意语法,这有点麻烦。您可以使用变量间接寻址(检索名称指定为$size值的变量的值),但更好的做法是使用关联数组,您会发现可以使用变量间接寻址(检索名称指定为$size值的变量的值),但更好的做法是使用关联数组,您会发现,您需要首先将
size
声明为关联数组,或者它默认为索引数组。请注意,在您的示例中,${size[$choice]}
输出20oz,而不是预期的16oz,因为您的每个分配设置(并重置)大小[0]
因为字符串在算术上下文中作为变量名进行计算。非常感谢!我很难理解数组的概念。我知道如何设置,但我对如何将其调用回我的程序感到困惑。我正在学习如何编写脚本,有很多方法可以完成这项工作!您需要声明size
首先作为关联数组,或者默认为索引数组。请注意,在您的示例中,${size[$choice]}
输出20oz,而不是预期的16oz,因为您的每个赋值设置(并重置)size[0]
因为字符串在算术上下文中作为变量名进行计算。非常感谢!我很难理解数组的概念。我知道如何设置,但我对如何将其调用回我的程序感到困惑。我正在学习如何编写脚本,有很多方法可以完成这项工作!