В systemd
версии 232
будет опция для отключения слушателя-заглушки. See https://github.com/systemd/systemd/pull/4061.
Проблема в том, что одинарные кавычки не являются особыми для tcl
, поэтому вы на самом деле запускаете команду grep
с аргументом '\.foo'
, включая кавычки, которые обычно должны быть удалены оболочкой.
Это приводит к тому, что grep
не соответствует, поэтому он завершается с кодом ошибки, отличным от -нулевым, и поэтому команда exec
передает ошибку.
Немедленный ответ — использовать tcl
двойные -кавычки(grep -E "\\.foo"
)или без кавычек(grep -E \\.foo
)или фигурные -кавычки(grep -E {\.foo}
). Но альтернатива — не прибегать к командам оболочки. Эквивалентом в tcl
может быть:
set fullfiles [glob *.foo]
foreach f $fullfiles { lappend files [string trimright $f.foo] }