Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.user > #191531

Re: bash array

From Gokan Atmaca <linux.gokan@gmail.com>
Newsgroups linux.debian.user
Subject Re: bash array
Date 2018-01-25 15:00 +0100
Message-ID <vbQem-6FO-5@gated-at.bofh.it> (permalink)
References <v7PTA-3ro-5@gated-at.bofh.it> <v8eff-2SW-3@gated-at.bofh.it> <vbOYV-5TE-3@gated-at.bofh.it> <vbPV0-6zn-13@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


> ===========================================================
> #!/bin/sh
> exec 3< "user.list"
> exec 4< "pass.list"
>
> while IFS= read -r user <&3 && IFS= read -r pass <&4
> do
>   exampleprogram "$user" "$pass"
> done
>
> exec 3<&-
> exec 4<&-

I arranged according to this example. Very thanks.

On Thu, Jan 25, 2018 at 4:34 PM, Greg Wooledge <wooledg@eeg.ccf.org> wrote:
> On Thu, Jan 25, 2018 at 03:35:35PM +0300, Gokan Atmaca wrote:
>> The problem is: I can pull the users one by one. I can not do the same
>> for passwords.
>
> Why not?
>
>> Do I need to use "Mapfile" for this?
>
> How would we know?  You haven't told us what is in the files, or what
> you want to DO with the contents of the files.
>
>> passwords=(cat $pass.list)
>
> Is wrong.
>
>> mapfile -t pass < "$passwords"
>
> Would be OK if $passwords contains the NAME of the file.  Is WRONG if
> $passwords is a string containing the CONTENTS of the file.
>
> Is also WRONG if passwords is an array containing the word "cat" and the
> expansion of "$pass" with the string .list appended to it, which is what
> your previous line created.
>
>> example-script:
>>    -- user.list
>>       a
>>       b
>>       c
>>
>>   -- pass.list
>>      xxx
>>      yyy
>>      zzz
>
> With all that whitespace?  Or should I just assume that the "xxx" is
> NOT indented as shown, but is instead an entire line?
>
> What do you want to DO with these files?
>
>> script:
>>
>> #!/bin/bash
>>
>>
>> pass=$(cat pass.list)
>
> Now, you see, this is ENTIRELY DIFFERENT from what you showed up above.
>
> Do you see the difference?  Look at the two lines again:
>
>> passwords=(cat $pass.list)
>
>> pass=$(cat pass.list)
>
> If you can't see the difference, you can't write computer programs.
>
> Moving on....
>
>> for i in user=$(cat user.list); do exampleporagram $i $pass; done
>
> Syntax errors.  Logic errors.  Cannot even make SENSE of this.
>
> Are you trying to read ONE USERNAME and ONE PASSWORD at a time, and
> pass each PAIR to your "exampleprogram"?
>
>
>> On Mon, Jan 15, 2018 at 5:39 PM, Greg Wooledge <wooledg@eeg.ccf.org> wrote:
>> > What kind of array do you want?  Why do you even want an array?
>> >
>> > What is your program supposed to do with these users and passwords?
>
> Can't you just write ONE SENTENCE to tell us the objective of the script?
>
> Let's go out on a limb and assume "I want to read one username and
> one password at a time, and pass them as a pair of arguments to
> 'exampleprogram'."
>
> The way you would do that is to open the two files, and then read a
> line at a time from each file, and then close the files.
>
> Like this:
>
> ===========================================================
> #!/bin/sh
> exec 3< "user.list"
> exec 4< "pass.list"
>
> while IFS= read -r user <&3 && IFS= read -r pass <&4
> do
>   exampleprogram "$user" "$pass"
> done
>
> exec 3<&-
> exec 4<&-
> ===========================================================
>
>
> See the following pages:
>
> http://mywiki.wooledge.org/Quotes
> http://mywiki.wooledge.org/FileDescriptor
> http://mywiki.wooledge.org/BashFAQ/001
>
> Then read this page again, because I know you didn't read it the
> first time:
>
> http://mywiki.wooledge.org/Quotes
>
> Then keep reading it over and over until you UNDERSTAND it.
>
>
> You do not need an array for this.  You don't even need bash features.
> I used pure POSIX sh up there, hence the #!/bin/sh shebang.
>
>
> P.S. read http://mywiki.wooledge.org/Quotes
>
> Also, be sure you quote properly.
>
> I'm serious.
>
> Quotes.
>
> They are NOT optional.
>

Back to linux.debian.user | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

bash array Gokan Atmaca <linux.gokan@gmail.com> - 2018-01-14 13:50 +0100
  Re: bash array <tomas@tuxteam.de> - 2018-01-14 15:10 +0100
  Re: bash array Greg Wooledge <wooledg@eeg.ccf.org> - 2018-01-15 15:50 +0100
    Re: bash array Gokan Atmaca <linux.gokan@gmail.com> - 2018-01-25 13:40 +0100
      Re: bash array Greg Wooledge <wooledg@eeg.ccf.org> - 2018-01-25 14:40 +0100
        Re: bash array Gokan Atmaca <linux.gokan@gmail.com> - 2018-01-25 15:00 +0100

csiph-web