zsh-users
 help / color / mirror / code / Atom feed
From: Paul Hoffman <nkuitse@nkuitse.com>
To: zsh-users@zsh.org
Subject: Re: How should I construct this?
Date: Wed, 24 Apr 2013 14:49:05 -0400	[thread overview]
Message-ID: <20130424184905.GA77653@phisen> (raw)
In-Reply-To: <E8BAA866-89AF-40DE-AB25-E17AD3042DDA@gmail.com>

On Wed, Apr 24, 2013 at 02:16:26PM -0400, TJ Luoma wrote:
> 
> I am trying to write a shell script which will help my computer
> automatically join Wi-Fi networks.
> 
> Each network needs to have an SSID (which may have spaces in it) and
> a password (which may have spaces, punctuation, etc in it).
> 
> I'm trying to figure out the best way to create this.
> 
> I thought about trying to make an array or something like this where
> the first 'column' would be the SSID and the 2nd column would be the
> passwords
> 
> ALL_WIFI_NETWORKS=(
>               Home                    89382ashfa
>               Work                    0823u2j98dyumn
>               "Coffee House"      ""
>               "Jenny's Wifi"      8675309
> )
> 
> 
> but then I need to be able to loop through $ALL_WIFI_NETWORKS using
> only first column… something like this
> 
> for SSID in {{{The First Arg in Each Line of $ALL_WIFI_NETWORKS}}}
> do
>       echo "foo"
> 
> done
> 
> 
> where the part in {{{ and }}} indicates the part where I really
> don't know how to do what I want to do.
> 
> It seems like there's got to be an easier / better way of doing
> this, but I can't figure out what it is, other than keeping two
> lists/arrays, one of the SSIDs, and one with the passwords, but that
> seems kludgey because I have to ask the user (whoever uses this
> script besides me) to put the SSIDs in twice.

Use an associative array:

    typeset -A wifi
    wifi=(
        Home            89382ashfa
        Work            0823u2j98dyumn
        'Coffee House'  ''
        "Jenny's Wiki"  8675309
    )
    for name in ${(k)wifi}; do print "$name -> ${wifi[$name]}"; done

Paul.

-- 
Paul Hoffman <nkuitse@nkuitse.com>


  parent reply	other threads:[~2013-04-24 20:06 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-24 18:16 TJ Luoma
2013-04-24 18:39 ` thomasg
2013-04-24 18:56   ` TJ Luoma
2013-04-24 19:53     ` thomasg
2013-04-24 19:08   ` peter.d.miller
2013-04-24 18:49 ` Paul Hoffman [this message]
2013-04-24 19:50 ` Bart Schaefer
2013-04-24 22:30   ` TJ Luoma
2013-04-24 22:40   ` TJ Luoma
2013-04-25  1:29     ` Paul Hoffman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130424184905.GA77653@phisen \
    --to=nkuitse@nkuitse.com \
    --cc=zsh-users@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).