Path: csiph.com!goblin2!goblin1!goblin.stu.neva.ru!usenet.stanford.edu!not-for-mail From: Luiz Angelo Daros de Luca Newsgroups: gnu.bash.bug Subject: test -v with array elements Date: Fri, 29 May 2020 17:00:54 -0300 Lines: 47 Approved: bug-bash@gnu.org Message-ID: References: NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" X-Trace: usenet.stanford.edu 1590782473 18683 209.51.188.17 (29 May 2020 20:01:13 GMT) X-Complaints-To: action@cs.stanford.edu To: bug-bash@gnu.org Envelope-to: bug-bash@gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=WKdLO7zPOsCeu6rB0DiZyzBIIY4H7L5PNQTdQN446eQ=; b=d+ZRp5iJd9a7HqoKoIiZFYIt1lhW48/1S6vaK9EQcQXVZpk4O5Tilw/U/mG/c2ECak 4lK7TJgu9zUjo+A8OSBpxCMbz98MJ2V0ZBOORDbebbVeFM5I9GgZrY0RIx/4gLfNffI5 7rUqYTx/pDcxvpJJq4fOulPQeSDfxgURKG4u9EiPw7ody1XkGKku900S+wsFwKtHFLsT vmoLx7dbyIsE0h/cSW6fdlX9dVwOQHU59Cxyfphij3wVRh2lNXxBj5tOx2oxosPYAvoW /VR+550kIM2RAAX0to16YqRgUXYTCT9EqNIW5bACZMqQOY8N7qbmv00uBtQuW22/OlQs wyIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=WKdLO7zPOsCeu6rB0DiZyzBIIY4H7L5PNQTdQN446eQ=; b=BJwYnqVwoQoHGEPs+brsWpmI6yukJtFeG2nNbydNGqkNnTeQJf976OdPbCP8r0YwZS vSinSMixnT0sKjy2pMlCcGcplDebG/0So8rX1o1mOtpYSkMItppFva/BsRCRRudcW547 wfc9TYrWBPvjrPtKc3ws0As/njQzeQuizsQHRrZ0axHnv4zXnd7loDWQXK95bWKnONGk eRXGWq4kQOcZDWhxoxJUm4ztlIQ0qGQ96to8drYW3NZvDxa3asDA7x5FSyu9WUryCWaL eMcVb+PQ/Vyf/oRXqOioUWYlgnkTS2TzUMpDAuwiHx20C35QncJodUWt4WDTjuLtwXJ5 wvLw== X-Gm-Message-State: AOAM532UY176U1vkyexEp9dLwY6drP1ZFQhyWIfXHsjguIB4Rw0CqJ14 JAr4FHbJl//oRBupmLGjdpxQsBjO5Emwi4rq2hmh8foo4OM= X-Google-Smtp-Source: ABdhPJzhzoAG2h5x6eQ+N7uOnISRtPDNPZkw2vr8+H89B2slpwBdKHalTixOR/cPaio5pGvxgbl7poU96FpSTydCB+4= X-Received: by 2002:a65:5285:: with SMTP id y5mr10207919pgp.271.1590782465832; Fri, 29 May 2020 13:01:05 -0700 (PDT) Received-SPF: pass client-ip=2607:f8b0:4864:20::52b; envelope-from=luizluca@gmail.com; helo=mail-pg1-x52b.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: bug-bash@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Bug reports for the GNU Bourne Again SHell List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: Xref: csiph.com gnu.bash.bug:16319 Hello, While using test -v, I noticed that it returns false when I use it with a sparse or empty array. I need to add [@] or [index] to have it return true. Is this expected? If so, it is not documented. It only has: "True if the shell variable varname is set (has been assigned a value)." I'm using GNU bash, version 5.0.16(1)-release (x86_64-pc-linux-gnu) $ A=() $ test -v A || echo not defined not defined Should it? $ A=(x) $ test -v A || echo not defined OK $ A=() $ A[1]=1 $ test -v A || echo not defined not defined Should it? 'test -v A' is equivalent to 'test -v A[0]' $ test -v A[1] || echo not defined $ test -v A[2] || echo not defined not defined if index is specified, it would be ok to have it return false. It would be a better way to test if an array contains a value (other than variable expansion). $ test -v A[@] || echo not defined This only fails when A is an empty array, which might be correct. Regards, --- Luiz Angelo Daros de Luca luizluca@gmail.com