Intereting Posts
удалить часть строки, содержащуюся в двух разных типах разделителей / разделителей Что означает «ядро: NMI watchdog: BUG: soft lockup», за которым следуют другие ошибки? Ошибка выполнения Octave в Ubuntu 16.04 Беспользованный SSH-доступ, не работающий с отклоненным сообщением Как вы находите, какие ключи являются символами «стереть» и «убить строку» в Ubuntu? Как обновить linux fedora 14 до последней версии Драйвер ATI и проблема с загрузкой «Запуск тимидности alsa midi emulation» Онлайн-перезагрузка btrfs корневой файловой системы с различным объемом (снимком) Как назначить избыточные ярлыки для переключения рабочих пространств в GNOME 3? Не удается установить Matlab 2018a Создание функции, отображающей имя переменной и ее значение Как включить отчеты о сбоях / основные дампы / ведение журнала трассировки во всем мире? Восстановление групп томов после удаления в файловой системе RO Как скомпилировать linux-версию ядра 3.16.1 для запуска в Slackware 14.1? Строка формата изображения IANA из двоичного потока

Как указать несколько входных аргументов, хранящихся в файле, в команду?

Я хотел бы преобразовать несколько веб-страниц в pdf-файл:

wkhtmltopdf http://think-like-a-git.net/sections/about-this-site.html http://think-like-a-git.net/sections/about-this-site/who-this-site-is-for.html all.pdf 

Если я поместил два входных аргумента в текстовый файл, называемый «links»:

 http://think-like-a-git.net/sections/about-this-site.html http://think-like-a-git.net/sections/about-this-site/who-this-site-is-for.html 

как указать входные аргументы в терминах файла? Не работает следующее:

 $ wkhtmltopdf "$(cat links)" all.pdf Loading pages (1/6) Counting pages (2/6) Resolving links (4/6) Loading headers and footers (5/6) Printing pages (6/6) Done Exit with code 1 due to network error: ContentNotFoundError 

Когда вы использовали двойные кавычки в "$(cat links)" , оболочка обрабатывала весь контент файла как одну строку, а не отдельные поля (каждое поле было одной строкой в ​​файле).

Вы можете сделать что-то вроде этого:

 set -f # Turn off globbing IFS=' # Split on newline only ' wkhtmltopdf $(cat links) all.pdf 

Ты мог:

 readarray -ta < file wkhtmltopdf "${a[@]}" all.pdf 

  • readarray считывает file в массив по readarray , -t удаляет конечную новую строку.
  • "${a[@]}" относится ко всем элементам массива. Это генерирует команду в форме:
 wkhtmltopdf "${a[0]}" "${a[1]}" "${a[2]}" "..." all.pdf