다음을 통해 여러 웹 페이지를 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
답변1
에서 큰따옴표를 사용하면 "$(cat links)"
쉘은 파일의 전체 내용을 별도의 필드(각 필드는 파일의 한 줄)가 아닌 하나의 문자열로 처리합니다.
다음을 수행할 수 있습니다.
set -f # Turn off globbing
IFS=' # Split on newline only
'
wkhtmltopdf $(cat links) all.pdf
답변2
당신은 할 수 있습니다:
readarray -t a < file
wkhtmltopdf "${a[@]}" all.pdf
readarray
file
후행 줄 바꿈을 제거하여 한 줄씩 배열로 읽습니다-t
."${a[@]}"
모든 배열 요소에 대한 참조입니다. 그러면 다음 형식의 명령이 생성됩니다.
wkhtmltopdf "${a[0]}" "${a[1]}" "${a[2]}" "..." all.pdf