ダウンロードスクリプトの出力を自動的に見つける方法

ダウンロードスクリプトの出力を自動的に見つける方法

私はURLを使ってファイルをダウンロードできる非常に基本的なスクリプトを書いています。これは私のスクリプトです。

#!/bin/sh

# A script that downloads a file based on url

function filedl() {
  echo "What is the url for the file?"
  read FILEURL
  wget $FILEURL
  echo "Download complete"
}

filedl

私ができることを望むのは、ダウンロードしたファイルをダウンロードしたらすぐに見つけて、スクリプトの他のコマンドまたは機能を使用して自動的に事前定義されたディレクトリに移動することです。

出力を変数にパイプする方法についていくつかのスレッドを読みましたが、私のスクリプトでこれを行う方法を知りませんでした。私が読んだトピックは次のとおりです。

次のような内容で新しい変数を作成してみましたが、うまくいかないようです。

NEWFILE=$(wget $FILEURL)

また、修正された関数呼び出しを使用してスクリプトを変換してみました。

NEWFILE=$(filedl)<--これもあまりないと思います。

最後に、コマンドを関数から移動し、上記の変数定義の試みのバリエーションとともに各コマンドをリストしました。私はまだ何をすべきかわかりません。

私はシェルスクリプトに初めて触れたので、明らかに知っておくべきことがない場合は謝罪します。

ベストアンサー1

変数にファイルをキャプチャして不必要にファイル全体をメモリに入れる代わりに、wget's --output-document/-Oフラグと次の2つのバリエーションのいずれかを使用します。

wget -O /path/to/file ... http://example.com/foobar
wget -O - ... http://example.com/foobar > /path/to/file

.../path/to/file目的のパス+ファイル名がある場所です。 (そして...使用できる他のフラグやパラメータも同じです。)

または、ダウンロードしたファイルのデフォルト名を保持するには、またはを--directory-prefix使用して-Pファイルを保存するディレクトリを指定します。

wget -P /some/path ... http://example.com/foobar

おすすめ記事