Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
190 views
in Technique[技术] by (71.8m points)

In Bash how can I test if the array is declared if I only have its name

This question very similar to this.

In BASH, I want to check whether all the variables/arrays are properly set before I proceed.

I have a little script (check-variables) that does this successfully with ordinary variables, but not arrays.

How can I make it work for arrays too?

cat check-variables

#!/bin/bash
# This script checks to see if variables have been set and reports their value.
flag=0
for which_variable in "${@}" ; do
if [ -z "${!which_variable:-}" ]; then
    if [ "${!which_variable+defined}" = defined ]; then
    echo -e "$which_variable is "", but set "
    else
        if [[ -v ${!which_variable} ]]; then
            echo -e "array $which_variable set"
        else
        flag=1
        echo  -e "$which_variable is not set"
        fi
    fi
else
     echo -e "$which_variable = "${!which_variable}" "
fi
done
exit $flag

export scenarios=(apple banana)
export x=5
export y=8
check-variables x y scenarios

x = "5"
y = "8"
scenarios is not set

I would like the output's last line to say:

scenarios = (apple banana)

question from:https://stackoverflow.com/questions/65838769/in-bash-how-can-i-test-if-the-array-is-declared-if-i-only-have-its-name

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...