Отправка двух текстовых файлов с помощью почтовой команды - Нет поддержки -a [дубликат]

Tu echoes uno de los que interpreta backslash -escapa . Un \nsignifica una nueva línea, por lo que obtienes exactamente eso. La última barra invertida viene como -, ya que \sno es un código de escape válido.

Make ejecuta los comandos a través de un shell, usando /bin/shpor defecto, y en Debian eso es dash. El echointegrado de Dash procesa las barras invertidas. Bash no. (Y tampoco lo hace el /bin/echoexterno en Debian, no es que importe a menos que ejecute explícitamente/bin/echo).

Su mejor opción es usar printfexplícitamente, al menos es seguro porque siempre procesa los escapes de barra invertida -. Lo siguiente siempre debe hacer lo mismo, el \\nal principio produce una barra invertida real y un n, el \nluego produce una nueva línea para finalizar la línea.

foo:
        printf '\\newcommand\n' > foo

(o, si desea evitar el procesamiento de barras invertidas, utiliceprintf "%s" '\newcommand')

Consulte la pregunta ¿Por qué printf es mejor que echo? para obtener más detalles sobre echotrampas.

0
20.01.2019, 04:27
1 ответ

Вам необходимо объединить два файла в один блок, прежде чем передать их команде mail. Нравится,например:

cat /home/directory/file1.txt /home/directory/file2.txt | mail username -s 'MySubject'
0
28.01.2020, 04:03

Теги

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