В bash, как передать все содержимое файла в программу в виде одной строки? - PullRequest
0 голосов
/ 14 ноября 2018

Я хочу запустить программу на C с содержимым файла в качестве ввода (включая символы новой строки), но программа принимает только одну строку в качестве ввода.

Как передать / перенаправить / передатьСодержимое файла в программе в виде одной строки?

cat "$filename" > ./program_name не сохраняет содержимое в виде одной строки, и большинство других решений, похоже, передают команду как буквальный текст команды.

1 Ответ

0 голосов
/ 14 ноября 2018

./program_name "$(< "$filename")" должен сделать трюк.

$(), аналогично ``, запускает его содержимое как подпроцесс и возвращает результат, поэтому $(< "$filename") перенаправит содержимое файлав качестве вывода подпроцесса.

"$(<"$filename")" делает то же самое, за исключением того, что он заключен в кавычки, bash не будет выполнять разбиение слов

...