bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: for loop over parameter expansion of array can miss resulted empty l


From: L A Walsh
Subject: Re: for loop over parameter expansion of array can miss resulted empty list
Date: Tue, 22 Mar 2022 20:05:21 -0700
User-agent: Thunderbird



On 2022/03/22 14:04, Lawrence Velázquez wrote:
On Tue, Mar 22, 2022, at 4:53 PM, L A Walsh wrote:
On 2022/03/21 03:40, Alex fxmbsw7 Ratchev wrote:
i solve this by shopt -s nullglob
Repeat-By:
   Code: x=("/"); for i in "${x[@]%/}"; do echo "i is '$i'"; done
   Result: none
   Expected result: i is ''
if you have nullglob set, then that is not the correct result.

The original bug report said nothing about nullglob.
----
Sorry, I got sidetracked.  In this case it wouldn't matter,
if you have no directories where you are running this,
then nothing will match, and it
will be a null (empty) expression. The
for i in X [Y [Z]], statement will execute once for each
non-null value after the 'in'.  If there are no expressions,
then it won't execute.  Thus there should be no output.

If you wanted to gather up dir names in the current directory, I'd
use something like:


readarray -t -d '' dirs< <(find . -maxdepth 1 -type d -print0)
dirs=${dirs[@]#./}

Sorry for my getting sidetracked (it happens alot.



find . -type d -print





reply via email to

[Prev in Thread] Current Thread [Next in Thread]