Como elaborar vários arquivos selecionados arrastando e soltando em um script bash

Como elaborar vários arquivos selecionados arrastando e soltando em um script bash

Estou usando o Dolphin em um ambiente de desktop KDE Plasma 5. Aqui eu escrevi um script bash, que pode elaborar exatamente UM arquivo, quando eu arrasto um arquivo do Dolphin e o solto em um script definido ".desktop" com um ícone, que então executa, por exemplo /home/user/scripts/list_all_drags.sh %f.

Isso funciona com esse arquivo. Agora eu gostaria de arrastar vários arquivos selecionados do Dolphin para o script e o script deverá elaborar seus procedimentos para cada entrada de arquivo. Isso não funciona, embora eu tenha usado %Fvários arquivos em vez de %fum único arquivo.

O que acontece é que várias janelas de terminal são abertas, uma para cada entrada de arquivo. O que preciso é que o código seja executado em UM script, para cada entrada de arquivo descartada, sem abrir várias janelas de terminal, mas sim a primeira. Exatamente, o "loop" para iniciar ou executar os comandos com os arquivos descartados, sem mais pressionar teclas.

Não sei como lidar com o %Fvalor do parâmetro no meu script.

Responder1

Acho que encontrei a resposta correta, especialmente como lidar com vários parâmetros com% F.

Primeiro seleciono minhas entradas (arquivos) em um gerenciador de arquivos. Em segundo lugar, arrasto todos esses arquivos marcados para o ícone do meu script e os solto nesse ícone. Dentro deste script que é executado com "/home/user/scripts/myscript.sh %F" existe uma rotina que elabora todas as entradas do arquivo selecionado.

Embora eu não tenha certeza de quantos parâmetros (arquivos) poderiam ser selecionados e elaborados em massa, esta rotina aqui me ajuda a contar todos os parâmetros únicos maiores que 0 (que são meus arquivos selecionados e marcados):

while (( $# > 0 )) # or [ $# -gt 0 ] do echo "$1" shift done

Em vez de "eco $1" posso dizer

file = $1

e então chame minha sub-rotina onde trabalho com $file

Agradecimentos especiais a esta postagem: Como lidar com mais de 10 parâmetros em um shell

informação relacionada