[devel] gawk interactive shell

Peter V. Saveliev =?iso-8859-1?q?peet_=CE=C1_altlinux=2Eru?=
Ср Апр 13 14:31:45 MSD 2005


...

В общем, посмотрел я на питон и сказал "хочу" :)) Искать было лень, за 15 минут
накидал скриптик.

http://radlinux.peet.spb.ru/files/related/gawk-interactive-1.00-rad1.src.rpm
http://radlinux.peet.spb.ru/files/related/gawk-interactive-1.00-rad1.noarch.rpm

Требует rlwrap и gawk. Может служить пособием "как не надо писать программы",
но всё же работает и для простой замены тестовых запусков "awk 'BEGIN {}'" мне
его более чем хватает.

Если кому ещё понадобится, могу накидать ман/хелп/и т.д.

Коротко об использовании (пока README не прикрутил)

a = цифра -- объявить числовую переменную
b = "текст" -- обявить строковую переменную
c = операции -- выполнить операции и загнать в строковую переменную

dump -- показать переменные
clean -- стереть все переменные
type X str|num -- поменять тип  переменой X на str (строка) или num (число)
exit -- выход

func(); func(); func() -- выполнить последовательность операторов в awk, подставив
 переменные.

Например:

$ gawk-interactive
rush 0# a = "text"
(str)   'a' = text

rush 1# b = 5
(num)   'b' = 5

rush 2# c = b*2 + 1
(str)   'c' = 11

rush 3# d = gensub(/x/,"s","",a)
(str)   'd' = test

rush 4# dump
(str)   'a' = text
(num)   'b' = 5
(str)   'c' = 11
(str)   'd' = test

rush 5# print(a"\t"b"\t"c"\t"d)
text    5       11      test

rush 6# exit
Exiting

ЗЫ: использовать рекомендуется только в учебных или тестовых целях :))
ЗЗЫ: с массивами не работает. Просто пока не думал на эту тему.
ЗЗЗЫ: если паче чаяния будет востребовано -- продолжу развивать :)

-- 
Peter V. Saveliev


Подробная информация о списке рассылки Devel