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>
next prev 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).