On 10/8/07, Dewey Hylton <dewey-wmii_AT_hyltown.com> wrote:
> Quoting sqweek <sqweek_AT_gmail.com>:
> > On 10/8/07, Dewey Hylton <dewey-wmii_AT_hyltown.com> wrote:
> the first one seems to have worked like a champ, but the second one is still
> problematic. obviously, i didn't understand the rc.wmii syntax initially and
> apparently still don't.
>
> here's my last attempt (trying to follow the great info from sqweek):
> fn status {
> load=`{uptime | sed 's/.*://; s/,//g'}
> export=`{df -h /export|awk 'END {print "Export: "$3"/"$1"/"$4}'}
> root=`{df -h /|awk 'END {print "Root: "$3"/"$1"/"$4}'}
> status=`{date}' || '`{acpi}' || '$root || '$export || '$load
> echo -n $status
> }
Right, I should have tested before I posted. rc uses ^ as a
concatenation operator. A lot of places you can elide the ^ and rc
will insert it itself (see Free Carets in rc(1)), but apparently after
a `{} isn't one of them, so you need to do it explicitly as in
`{date}^' || '`{acpi}^...
However, there's another problem. `{} evaluates to a list (based on
the whitespace seperated output of the command), and concatenating a
list in rc is similar to brace expansion in POSIX shells. ie:
; echo a^(b c d)
ab ac ad
So, we need to flatten the lists returned by `{date} and `{acpi}
before concatenating them, and I'm going to have to lookup the man
page to see if I can work out how to do that on an anonymous list or
whether we need to use a variable...
Ah, of course, `{} results in a list delimited by $ifs, not whitespace. So:
ifs='
' {
status=`{date}^' || '`{acpi}^' || '$root' || '$export' || '$load
echo -n $status
}
But then, this still hase problems since $root/$export/$load are
probably also lists :D
Also, status is not a great variable name to use because rc uses it
(similar to $? in POSIX sh). Anyway, simplest way all round is
probably just:
date=`{date}
acpi=`{acpi}
echo -n $"date' || '$"acpi' || '$"root' || '$"export' || '$"load
$" flattens the lists into strings.
-sqweek
Received on Mon Oct 08 2007 - 17:07:22 UTC
This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 16:29:11 UTC