(自己署名証明書を使用してサーバーから)いくつかの画像をダウンロードし、それらすべてをfeh
で表示したいと思います。これは単一のコマンドで可能ですか?何かのようなもの curl -sk -b path_to_session_token url1 url2 | feh -
-ただし、これはfeh
ファイルの1つのみをフィードします。できれば、ファイルに保存して後で削除せずに。
feh
は、何らかの「プロトコル」が実装されていない限り、標準入力で送信された複数の画像を区別できません。
一時ファイルを使用したくない場合は、ループを使用できます。
for url in 'url1' 'url2'; do
curl -skb token "$url" | feh -
done
これにより、各画像が次々にダウンロードされて表示されます。 「同時に」に複数のビューアを開きたい場合は、それに少しアンペアサンドを追加します。
for url in 'url1' 'url2'; do
(curl -skb token "$url" | feh - &)
done
すべてを1行にまとめることも、関数を定義することもできることに注意してください。
$ for url in 'url1' 'url2'; do curl -skb token "$url" | feh -; done
$ for url in 'url1' 'url2'; do (curl -skb token "$url" | feh - &); done
function feh_urls
{
for url; do
curl -skb token "$url" | feh -
done
}
$ feh_urls 'url1' 'url2'
URLやパスに迷惑なスペースがある可能性があるため、引用符には注意してください(...そして上記の例でそのような間違いをしなかったといいのですが...) 。関数を使用する場合は、.bashrc
に追加して、毎回手動で再定義しなくてもシェルで使用できるようにします。
完全を期すために、いくつかの一時ファイルを含む小さなスクリプト(もちろん関数にすることもできます)を次に示します。途中でいくつかのcurl
およびfeh
プロセスを保存します。バージョンによっては、 リモートファイル名を正しく取得できない場合があります (もちろん、画像に異なる名前を付けることができるため、wget
の代わりにcurl
を使用しています。 )。
#!/bin/bash
img_dir=$(mktemp -d)
cd $img_dir
wget -q --no-check-certificate --load-cookie token "$@"
feh $img_dir/*
rm -r $img_dir
使用法:
$ ./feh_urls.sh 'url1' 'url2'
ここでの利点は、feh
が複数回生成されず、すべての画像を一度にロードできることです(矢印キーを使用して画像を参照します)。
wget
を使用したCookie管理の詳細が必要な場合は、 このページ 、SSL/TLSオプションの詳細については このページ も参照してください。