Я пытаюсь получить почтовый ящик для результатов опроса, в котором субъект будет содержать ответ на следующий вопрос: «Ответ на ваш вопрос: ___»
Ответ на вопрос будет иметь форму: «Тема: RE: Ответ на ваш вопрос: да|нет|' '"
Я попробовал следующее в сценарии bash:
subject=$(cat /var/mail/incoming | grep '^Subject:' | cut -d' ' -f 9)
Я ожидаю вывода, подобного следующему:
yes
no
no
yes
yes
no
В которых будут пробелы, где произошел неответ, и это именно то, что я вижу, когда использую grep в командной строке.
Однако, когда я сохраняю результаты в var, результат получается:
yes
no
no
yes
yes
no
Как обнаружить пробел в конце команды grep и заменить его на «нет»?
Желаемый результат:
yes
no
no
yes
none
yes
no
Вы действительно пробовали решение, предложенное в связанном дубликате? Что-то вроде echo "$subject" вместо echo $subject?
Также см.: Массив Bash с пробелами в элементах, если это ваша проблема.





subject=$( awk '/^Subject:/ { print ($9 ? $9 : "none") }' /var/mail/incoming )
Например:
$ cat file
Subject: RE: The answer to your question is yes
Subject: RE: The answer to your question is no
Subject: RE: The answer to your question is no
Subject: RE: The answer to your question is yes
Subject: RE: The answer to your question is
Subject: RE: The answer to your question is yes
Subject: RE: The answer to your question is no
$ subject=$( awk '/^Subject:/ { print ($9 ? $9 : "none") }' file )
$ echo "$subject"
yes
no
no
yes
none
yes
no
...Однако, когда я сохраняю результаты в переменной, выходные данные:.. и как показать выходные данные из переменной?