Должен ли процесс, указанный в systemd, быть демоном?

Во-первых, вам не нужно grepвыводls:этого должно хватить

send "ls -1t $dbname.*\r"

И взять только самую новую:

send "ls -1t $dbname.* | head -1\r"

Теперь к сути вашего вопроса :да, может возникнуть проблема с извлечением вывода команды из ожидаемого _выходного буфера. Сделай это:

expect -re {(.*)\r\n$ $}
set cmd_output $expect_out(1,string)

cmd_outputбудет содержать отправленную вами команду оболочки, а также вывод, все строки разделены \r\n. Вы можете проверить его с помощью

exec od -c <<$expect_out(buffer)

Вам нужно удалить первую \r\nразделительную строку. Вот один из способов сделать это:

if {![regexp {^.+?\r\n(.*)$} $cmd_output -> filename]} {
    error "unexpected output: does not contain \\r\\n"
}
# now, go get $filename
2
19.10.2020, 13:25
0 ответов

Теги

Похожие вопросы