Короче говоря ,
.
вы можете использовать:
a=( $(awk '/^LogFormat/{print $(NF)}' httpd.conf) )
для получения слов из httpd.conf в переменную массива a
.
Теперь вы можете получить доступ к элементам по их индексу:
$ echo ${a[2]}
common
Объясненные и проиллюстрированные
Assingning массивы:
$ a=( e1 e2 e3 )
$ echo "count: ${#a}, a[2]: \"${a[2]}\""
count: 3, a[2]: "e2"
Некоторые оболочки setup:
Это не нужно для этого примера, где мы знаем, что у нас есть только слова в качестве значений, но в общем, это очень важно.
Нам нужна опция -f
, чтобы предотвратить глобус, если значения содержат *
или ?
.
Также, мы должны установить внутренний разделитель полей IFS в соответствии с нашими данными, если это не простые слова (и сохранить и восстановить его).
$ # set -f
$ # IFS=$'\n'
Наш тестовый вход :
$ in=httpd.conf
$ grep '^LogFormat' "$in" | awk -F\" '{print $(NF)}'
combined
common
referer
agent
С помощью вашей команды original:
$ a=( $(cat "$in" | grep '^LogFormat' | awk -F\" '{print $(NF)}') )
$ echo "count: ${#a}, a[2]: \"${a[2]}\""
count: 4, a[2]: " common"
с короче версия @StéphaneChazelas:
$ a=( $(awk '/^LogFormat/{print $(NF)}' $in) )
$ echo "count: ${#a}, a[2]: \"${a[2]}\""
count: 4, a[2]: "common"
Я добавил время в свой календарь и отображаю время в Париже или Мельбурне виджет моего календаря Вы можете проверить это, чтобы обновить виджет.
Главное волшебство здесь:
local f = io_m.popen("TZ='"..locale.."' date +%H:%M")
local s = f:read('*a')
local header = os.date("%B %Y ",os.time{year=year,month=month,day=1})..s
Быстрое использование: Создайте виджет:
mytextclock = awful.widget.textclock()
require('calendar2')
calendar2.addCalendarToWidget(mytextclock, io, "<span color=\"yellow\"><b>%s</b></span>")
Затем
поместите виджет в wibox
-- Create the wibox
mywibox = {}
for s = 1, screen.count() do
mywibox[s] = awful.wibox({ position = "top", screen = s })
mywibox[s].widgets = {
{
mylauncher,
mytaglist[s],
mypromptbox[s],
["layout"] = awful.widget.layout.horizontal.leftright
},
mylayoutbox[s],
mytextclock,
["layout"] = awful.widget.layout.horizontal.rightleft
}
На самом деле я получил это решение:
clock_format = "%a %Y-%m-%d %H:%M %Z"
utc_textclock = wibox.widget.textclock(" ".. clock_format, nil, "Z")
local_textclock = wibox.widget.textclock(" — ".. clock_format.. " ")