元の行の1つには、次のbashスクリプトがあります。
convert '%d.jpg[1-300]' combined.pdf
Imagemagickの変換を使用して、順番に番号付けされた複数のjpgをPDFにマージします。
変更可能なページ数のユーザー入力を受け入れる基本スクリプトを作成し、スクリプトの実行中にread -pを使用して300をユーザー設定変数に置き換えました。これにより、以下を達成しました。
convert '%d.jpg[1-$pages]' combined.pdf
スクリプトの残りの部分はうまく機能しますが、この行では失敗しますが、その理由はわかりません。どんな提案がありますか?
私はこれが間違った区切り文字に関連していると思いますが、見つけるべき正しいことがわかりません。
答え1
매개변수 확장은 작은따옴표 내에서 수행되지 않습니다. 그러나 큰따옴표 내에서 실행되므로 다음과 같습니다.
convert "%d.jpg[1-$pages]" combined.pdf
[
어떤 경우든 대부분의 쉘에서 glob 연산자가 특별하기 때문에 어떤 형태의 인용이 필요합니다 ( fish
이것은 주목할만한 예외이지만 fish
어쨌든 이전 버전에서는 특별합니다 ). 그리고 인용되지 않은 것을 제외한 %
모든 Bourne과 유사한 쉘에서 zsh
인수 확장은 분할+glob의 영향을 받으며 이는 바람직하지 않습니다.