
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 %F
vários arquivos em vez de %f
um ú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 %F
valor 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