История изменений
Исправление AKonia, (текущая версия) :
А почему не сделать что-то вроде:
-- вводим два контекста - команды и оболочки, \
-- первые копят цепочку, второй исполняет,
-- метатабличками перегружаем `_G`, и контексты до
-- получения следующего синтаксиса:
ls{ "-la" } | grep { "lua" } | wc { "-l"} | shell {}
cat { in = "/etc/passwd" } | sort { out = "sorted.txt"} | shell {}
Вроде же симпатичнее и больше на обычный bash
похоже(чтобы проще было примеры переписывать).
То что вы показали больше как по мне похоже на эдакое расширение io.pipe()
/os.execute()
, который тогда уж проще расширить аналогом луашных регулярок, чем приведённый функциональный стиль использовать с кучей избыточных кавычек. Если же тюнить ваш пример, то как минимум лучше вытянуть stdin/stdout
как нарушителей контейнера и вместо аргументов функций использовать таблицы, в которых и переопределять stdin/stdout
Исправление AKonia, :
А почему не сделать что-то вроде:
-- вводим два контекста - команды и оболочки, \
-- первые копят цепочку, второй исполняет,
-- метатабличками перегружаем `_G`, и контексты до
-- получения следующего синтаксиса:
ls{ "-la" } | grep { "lua" } | wc { "-l"} | shell {}
cat { in = "/etc/passwd" } | sort { out = "sorted.txt"} | shell {}
Вроде же симпатичнее и больше на обычный bash
похоже(чтобы проще было примеры переписывать).
То что вы показали больше как по мне похоже на эдакое расширение io.pipe()
/os.execute()
, который тогда уж проще расширить аналогом луашных регулярок, чем приведённый функциональный стиль использовать с кучей избыточных кавычек. Если же тюнить ваш пример, то как минимум лучше вытянуть stdin/stdout
как нарушителей контейнера и вместо аргументов функций использовать таблицы
Исправление AKonia, :
А почему не сделать что-то вроде:
-- вводим два контекста - команды и оболочки, \
-- первые копят цепочку, второй исполняет,
-- метатабличками перегружаем `_G`, и контексты до
-- получения следующего синтаксиса:
ls{ "-la" } | grep { "lua" } | wc { "-l"} | shell {}
cat { in = "/etc/passwd" } | sort { out = "sorted.txt"} | shell {}
Вроде же симпатичнее и больше на обычый bash
похоже(чтобы проще было примеры переписывать).
То что вы показали больше как по мне похоже на эдакое расширение io.pipe()
/os.execute()
, который тогда уж проще расширить аналогом луашных регулярок, чем приведённый функциональный стиль использовать с кучей избыточных кавычек. Если же тюнить ваш пример, то как минимум лучше вытянуть stdin/stdout
как нарушителей контейнера и вместо аргументов функций использовать таблицы
Исходная версия AKonia, :
А почему не сделать что-то вроде:
-- нужно ввести два контекста - команды и оболочки, \
-- первые копят цепочку, второй исполняет,
-- метатабличками перегружаем `_G`, и контексты до
-- получения следующего синтаксиса:
ls{ "-la" } | grep { "lua" } | wc { "-l"} | shell {}
cat { in = "/etc/passwd" } | sort { out = "sorted.txt"} | shell {}
Вроде же симпатичнее и больше на обычый bash
похоже(чтобы проще было примеры переписывать).
То что вы показали больше как по мне похоже на эдакое расширение io.pipe()
/os.execute()
, который тогда уж проще расширить аналогом луашных регулярок, чем приведённый функциональный стиль использовать с кучей избыточных кавычек. Если же тюнить ваш пример, то как минимум лучше вытянуть stdin/stdout
как нарушителей контейнера и вместо аргументов функций использовать таблицы