Как передать перенос строки из переменной способом "ANSI-C"?

Следующий бит вывода:

fatal error: gd.h: No such file or directory compilation terminated.

Сообщает вам, что у вас отсутствует заголовочный файл, необходимый программе. В программах на C файлы заголовков обычно содержат объявления функций и другие фрагменты кода, описывающие API библиотеки, используемой этой программой.

В этом случае gd.h принадлежит libgd. Как это сделать, зависит от вашей операционной системы. Часто вам нужно установить два пакета: один для разделяемой библиотеки, а другой для заголовков (libgd и libgd -devel, например ).

0
31.10.2019, 14:41
2 ответа

Для меня это так

#!/bin/bash

set -x

variable="hello\r\n\r\nworld"

http --json http://example.com \
    value="${variable@E}"
3
28.01.2020, 02:17

Либо используйте $'...'в назначении переменной, как в

variable=$'hello\r\n\r\nworld'

вместо

variable="hello\r\n\r\nworld"

Или используйте printfдля обработки побегов (это должно работать в любой оболочке POSIXy):

escaped="hello\r\n\r\nworld"
raw=$(printf "%b" "$escaped")

Однако обратите внимание, что подстановка команд съест последний символ новой строки (s ), если они есть, поэтому вам, возможно, придется обойти это, добавив и удалив фиктивный символ в конце:

escaped="hello world\n"
raw=$(printf "%b." "$escaped")
raw=${raw%.}

Затем используйте полученную переменную как обычно.

1
28.01.2020, 02:17

Теги

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