여러 파일을 컬에서 다른 프로그램으로 파이프

여러 파일을 컬에서 다른 프로그램으로 파이프

자체 서명된 인증서가 있는 서버에서 여러 이미지를 다운로드하여 사용하고 싶습니다 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

모든 것을 한 줄에 입력하거나 함수를 정의할 수 있습니다.

$ 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매번 수동으로 다시 정의할 필요 없이 셸에서 사용할 수 있습니다.

완전성을 기하기 위해 여기에 일부 임시 파일과 관련된 작은 스크립트(물론 함수가 될 수 있음)가 있으며 일부 임시 파일 curlfeh프로세스를 저장합니다. 버전에 따라 대신 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, 또는이 페이지SSL/TLS 옵션에 대한 추가 정보

관련 정보