次のタスクを実行するためのスクリプトを作成しようとしています。 Lynx ブックマークからマグネットリンクを抽出し、カールコマンドの一部として使用します。このように:
curl http://my_ip:my_port_number/startdownload/magnet_link
マグネットリンクを取得するには、次のものが必要です。
lynx -dump -hiddenlinks=listonly lynx_bookmarks.html | grep "magnet" | sed 's/&.*//' | cut -c 7-
しかし、2つの部分を一緒に貼り付けてスクリプトを作成する方法がわかりません。
アドバイスをお願いしますか?
しかし、私はこの分野に完全アマチュアであり、改善できる部分があると確信しています。
ベストアンサー1
したがって、あるコマンドの出力をキャプチャして別のコマンドに使用する必要があります。 bash $(..)構文を使用すると、コマンドを実行して出力をキャプチャしてから、他のコマンドで使用できます。
1つの方法は、出力を変数としてキャプチャすることです。たとえば、次のようになります。
shortcut=$(lynx -dump -hiddenlinks=listonly lynx_bookmarks.html | grep magnet | sed 's/&.*//' | cut -c 7-)
curl "$shortcut"
あるいは、出力を直接使用することもできます。
curl $(lynx -dump -hiddenlinks=listonly lynx_bookmarks.html | grep "magnet" | sed 's/&.*//' | cut -c 7-)
どちらを選ぶかによって好みが変わります。コマンドの出力が複数回必要な場合は、出力を変数としてキャプチャしてそこで使用することをお勧めします。