Scrot e Imgur uploader bash script

0

Eu já soube como fazer isso, mas esqueci completamente disso.

Então eu uso o scrot, ou seja, 'scrot'% d /% m-scrot.jpg '. Eu sei que posso passar um argumento -e para executar um programa, mas é aí que eu fiquei preso.

Eu quero usar scrot com o script bash Imgur uploader do link e carregar a imagem para Imgur. Eu não consigo descobrir como fazer os dois em um comando, no entanto.

O que eu quero fazer é fazer um scrot, enviá-lo para imgur e enviar o stdout de imgur.sh para xclip para que o URL imgur seja adicionado à minha área de transferência.

Eu tenho uma memória fraca de algo parecido com isto: scrot '%d/%m-lulzol.jpg' -e imgur $f e, em seguida, alguns xargs . Não reconhece $f agora.

Não sei como posso usar a saída do comando anterior scrot como uma variável para o comando Imgur. Existe algum tipo de variável geral usada para stdout de um comando anterior no Bash? Como você pode dizer, eu não estou muito familiarizado com o funcionamento interno do Bash ou com a sintaxe dos arquivos.

    
por user224674 02.12.2015 / 00:52

2 respostas

0

% bl0ck_qu0te%

$f está usando a substituição de parâmetros . Parece que você estava usando em loop, provavelmente algo como for f in $(ls);... .

% bl0ck_qu0te%

redirecionamento de E / S . (não existe uma 'variável geral' em BASH btw.)

% bl0ck_qu0te%

Eu não estou familiarizado com imgur.sh , mas com base na sua memória de usar xargs, eu diria que o comando seria algo como: scrot '%d/%m-lulzol.jpg' -e imgur.sh <imagename> | xargs xclip

Isso usa scrot para executar imgur.sh em uma determinada imagem (< day > / < month > -lulzol.jpg) e, em seguida, canaliza o stdout (provavelmente o URL da imagem?) para xargs , que o alimenta como um argumento para xclip , que copia para sua área de transferência.

    
por cremefraiche 02.12.2015 / 01:24
0

De man scrot :

[...]
       -e, --exec APP
            Exec APP on the saved image.
[...]
SPECIAL STRINGS
       Both the --exec and filename parameters  can  take  format  specifiers
       that  are  expanded by scrot when encountered.  There are two types of
       format specifier. Characters preceded by a  '%'  are  interpretted  by
       strftime(2). See man strftime for examples.  These options may be used
       to refer to the current date and time.  The second kind  are  internal
       to  scrot  and are prefixed by '$' The following specifiers are recog‐
       nised:

       $f image path/filename (ignored when used in the filename)
[...]

Então o comando seria:

scrot '%d/%m-scrot.jpg' -e 'imgur $f | xclip'

Um exemplo sem sentido apenas para mostrar que o comando passado para -e funciona mesmo que contenha pipes:

% scrot -e 'echo $f | grep 2015'
2015-12-02-015014_1366x768_scrot.png
% scrot -e 'echo $f | grep 2016'
% 
    
por kos 02.12.2015 / 01:39