我有一堆以唯一編號開頭的pdf文件。每個數字代表一個用戶。現在我試圖將每個用戶的所有PDF文件連接成一個「AllInOne」文件。但是當我嘗試運行我的bash腳本時,它不能識別pdftk命令中的通配符。bash腳本迭代中的通配符錯誤 - Shell
每個用戶都會有一組被命名爲這樣的PDF文件:
1019-APP-CV-01.pdf
1019-APP-SOI-01.pdf
1019-APP-EC-01.pdf
1019-APP-TOR-01.pdf
1019-APP-TOR-02.pdf
1019-ADM-LOR1-01.pdf
1019-ADM-LOR2-01.pdf
我試圖運行這個bash腳本:
# Script for concat all pdf files of an array of applicants to one file.
#!/bin/sh
cd FILES
array=(1019 1041 1042 1043 1044 1049 1063 1070 1073 1074 1075 1077 1078 1079 1094 1105 1111 1115 1120 1122 1124 1137 1138 1141 1143 $
for i in "${array[@]}"
do
pdftk $i-*.pdf cat output $i-AllInOne.pdf;
done
而且我已經得到了這些消息爲所有用戶。 錯誤消息:
Errors encountered. No output created.
Done. Input errors, so no output created.
Error: Failed to open PDF file:
1318-*.pdf
Errors encountered. No output created.
Done. Input errors, so no output created.
Error: Failed to open PDF file:
1319-*.pdf
Errors encountered. No output created.
Done. Input errors, so no output created.
是不是有什麼毛病我通配符在bash腳本?
將#!/ bin/sh放在文件的第三行是毫無意義的。只有當它出現在第一行的第一列時才使用shebang。 (即'#!'必須是文件的前兩個字節。) – 2012-03-21 20:20:55
注意。但爲什麼腳本仍然工作,當我'$ bash foobar.sh' ?? – alvas 2012-03-21 20:32:03
因爲您正在指定解釋器而不是要求操作系統確定解釋器。另外/ bin/sh不理解數組,這是bash特有的。 – 2012-03-21 21:44:38