wgetバッチLinuxファイル

wgetバッチLinuxファイル

メーカーホームページから画像ダウンロードを利用しようとしていますwget。シェルからコマンドを実行すると正常に動作します。ただし、ファイルで実行するとプレースホルダファイルが生成されます。

これはコマンドです:

wget --wait=2 --output-document=1000.jpg 'http://distributorcentral.com/resources/productimage.cfm?prod=8cb7afa6-73bf-4f9f-b251-38dc652779c9&size=large'

ファイルに表示される内容は次のとおりです。

wget --wait=5 --output-document=1101.jpg 'http://distributorcentral.com/resources/productimage.cfm?prod=4d41b2ff-90a4-40c1-9159-2780cd642244&size=large'
wget --wait=5 --output-document=1102.jpg 'http://distributorcentral.com/resources/productimage.cfm?prod=5e88f32e-48f2-40db-bdbd-53624448392d&size=large'
wget --wait=5 --output-document=1103.jpg 'http://distributorcentral.com/resources/productimage.cfm?prod=59292a17-ae6f-49df-a028-0a9f71686f80&size=large'

なぜバッチシェルファイルとして機能しないのか理解できません。

答え1

シェルスクリプトを実行するには、Unixでx(実行)フラグを追加する必要があることをご存知ですか? DOSユーザーのもう一つの一般的な落とし穴は、セキュリティ上の理由から一般的に「.」がないことです。 PATH環境では、「your-script」だけでなく「./your-script」も実行する必要があります。

他の答えで言及されたshe-bangについて。少なくともLinuxでは、she-bangがスクリプトに提供されていない場合は/ bin / shが使用されるデフォルトのシェルです。常にすべてのスクリプトに1つを追加することをお勧めします。

答え2

ここでテストしましたが、うまく動作します。上部にシバンラインはありますか? #!/path/to/shell

答え3

出力を受け取る

which bash

そして

which wget

次に、ポンド記号(#!)を使用して、スクリプトの上部にbashに返されたパスを追加します。つまり、どの bash が /bin/bash を返す場合に使用します。

#!/bin/bash

次に、wgetの戻りパスを追加します。はい

/usr/bin/wget --wait=5 --output-document=1101.jpg 'http://distributorcentral.com/resources/productimage

最後に作成したスクリプトが実行可能であることを確認してください。chmod +x name-of-your-script

うまくいかない場合は、スクリプトに -x を追加してデバッグ情報を取得します。

#!/bin/bash -x

関連情報