我想检查Bash脚本中关联数组中的某个键值对是否已设置。
到目前为止我的代码(仅限示例):
#!/bin/bash
declare -A aa
aa[FIRST[SECOND]]=1
if [ ! -z ${aa[FIRST[SECOND]]+x} ]; then
echo "Yes, value is ${aa[FIRST[SECOND]]}."
else
echo "No, the item has not been set yet."
fi
对我而言,这似乎是保存和声音,但在向其他地方的核心社区提交关键脚本之前,我认为提出问题是个好主意。
答案 0 :(得分:1)
稍微短一些:)
if [[ ${aa[FIRST[SECOND]]+x} ]]; then ...
即。假设键是一个字符串“FIRST [SECOND]”
答案 1 :(得分:0)
从bash
4.3开始,您可以使用-v
运算符。
if [ -v aa[FIRST[SECOND]] ]l; then
echo "Yes, value is ${aa[FIRST[SECOND]]}"
else
echo "No, the item has not been set yet."
fi