1

всем хорошего дня

это часть большей функции, но я получаю эту ошибку и не могу понять, в чем проблема:

имя скрипта "connected.sh"

работает это

 cat "$logfile" | grep "$searchstring"

отлично возвращает результаты, однако, когда я вставляю это в функцию bash, со следующим кодом: (это строка 41, строка 40, я создаю файл tempout, а 41 - простое эхо)

 "$(cat "$logfile" | grep "$searchstring")" >> "$tempout"

это напечатано в терминале:

./connected.sh: line 41: Fri Nov  6 14:29:14 2015 us=68416 xyz/x.x.x.x.184:44595 MULTI: primary virtual IP for xyz/x.x.x.x:44595: 10.0.0.12 
Fri Nov  6 14:29:27 2015 us=606987 xyz/x.x.x.x:40223 MULTI: primary virtual IP for xyz/1x.x.x.x:40223: 10.0.0.10 
Fri Nov  6 15:46:58 2015 us=712031 xyz/x.x.x.x4:54911 MULTI: primary virtual IP for xyz/x.x.x.x:54911: 10.0.0.12: No such file or directory

что вызывает это "./connected.sh: строка 41: ... Данный файл или каталог отсутствует"

1 ответ1

3
 "$(cat "$logfile" | grep "$searchstring")" >> "$tempout

Выполняет строку, найденную grep в вашем $ logfile (это то, что делает «$» в начале вашей внешней круглой скобки), а затем сохраняет вывод в $ tempout. Из вашего объяснения видно, что вы пытаетесь перенаправить найденную grep строку в $ tempout. который будет просто:

cat "$logfile" | grep "$searchstring" >> "$tempout"

Это то, что вы пытаетесь сделать?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .