私は一意の番号で始まる一連のpdfファイルを持っています。各数字はユーザーを表します。そして今、私は各ユーザーのすべてのpdfファイルを "AllInOne"ファイルに連結しようとしています。しかし、私がbashスクリプトを実行しようとすると、pdftkコマンドでワイルドカードが認識されません。bashスクリプトの反復でワイルドカードエラー - シェル
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スクリプト実行しようとした:
すべてのユーザは、次のような名前が付けられたPDFファイルのセットを持っています
# 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スクリプトの私のワイルドカードに何か問題はありますか?
ファイルの3行目に#!/ bin/shを置くのは全く無意味です。シバンは、最初の行の最初の列にある場合にのみ使用されます。 (つまり、 '#!'はファイルの最初の2バイトでなければなりません)。 –
が記載されています。しかし、私が '$ bash foobar.sh'を実行しても、スクリプトはなぜ動作するのですか? – alvas
あなたはインタープリタを指定しており、OSにインタプリタを決定するように依頼していないためです。/bin/shは配列を理解できませんが、それはbash固有です。 –