我最終陷入了一個奇怪的境地。我有 35 個資料夾。第一個命名為 1,第二個命名為 2,依此類推。每個資料夾中都有 4 個檔案。 「1.png」、「2.png」、「3.png」、「4.png」。在每個資料夾中,我希望運行“convert *.png -append out.pdf”,並在其原始目錄之後重命名每個“out.pdf”(例如第一個資料夾中的“out1.pdf ”),然後解壓每個資料夾pdf 從其原始資料夾。這可能嗎?我嘗試過循環,但我嘗試過的所有內容似乎都不符合命名系統。
答案1
試試這樣的事情:
#!/bin/sh
for dir in $(seq 1 35)
do
(
cd $dir || exit 1
rm -f out$dir.pdf
for n in 1 2 3 4
do
convert $n.png -append out$dir.pdf || exit 2
done
)
done
該腳本符合 posix 標準並且不需要bash
,因此#!/bin/sh
.
括號之間的程式碼在子 shell 中運行,因此該cd
命令僅更改目錄,直到右括號為止。循環的下一次迭代將從原始工作目錄開始。
在您的示例中,我認為 的語法convert
不正確。 Convert 僅需要一個輸入文件,而在您最初的問題中,*.png
將傳遞四個輸入文件。也許這是你問題的一部分。