Canaliza vários arquivos da curva para outro programa

1

Eu gostaria de baixar várias imagens (de um servidor com um certificado autoassinado) e visualizá-las com feh . Isso é possível com um único comando? Algo como curl -sk -b path_to_session_token url1 url2 | feh - - exceto isso só alimenta feh de um dos arquivos. De preferência sem salvar em um arquivo e excluí-lo depois.

    
por EvenLisle 24.09.2015 / 14:57

1 resposta

2

feh não será capaz de distinguir entre várias imagens enviadas em sua entrada padrão, a menos que algum tipo de "protocolo" seja implementado.

Se você não quiser usar arquivos temporários, talvez você possa usar um loop:

for url in 'url1' 'url2'; do
    curl -skb token "$url" | feh -
done

Isso fará o download e exibirá cada imagem uma após a outra. Se você preferir ter vários espectadores abertos no "mesmo horário" , adicione um pequeno "e" comercial a ele:

for url in 'url1' 'url2'; do
    (curl -skb token "$url" | feh - &)
done

Note que você pode colocar tudo em uma única linha, ou talvez definir uma função:

$ 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'

Tenha cuidado com suas citações, pois pode haver alguns espaços irritantes em seus URLs ou caminhos (... e espero não ter cometido esse erro nos exemplos acima ...) . Se você optar por uma função, talvez inclua-a no seu .bashrc para poder usá-la no seu shell sem redefini-la manualmente toda vez.

Por questão de integridade, aqui está um pequeno script (que pode ser feito naturalmente) que envolve alguns arquivos temporários, salvando alguns processos curl e feh no caminho. Estou usando wget em vez de curl porque, dependendo da sua versão, você pode não ser capaz de pegar nomes de arquivos remotos corretamente (você pode dar nomes diferentes a suas imagens, é claro).

#!/bin/bash

img_dir=$(mktemp -d)
cd $img_dir
wget -q --no-check-certificate --load-cookie token "$@"
feh $img_dir/*
rm -r $img_dir

Uso:

$ ./feh_urls.sh 'url1' 'url2'

Observe que a vantagem aqui é que feh não é gerado várias vezes e pode carregar todas as imagens de uma vez (use as teclas de seta para procurá-las).

Você também pode estar interessado em esta página se você quiser mais informações sobre gerenciamento de cookies com wget , ou esta página para detalhes sobre as opções SSL / TLS.

    
por 24.09.2015 / 17:31