Quero melhorar meu script bash para que ele abra novas abas com expressões de termos em polonês. Quero que ele funcione com Linux.
O que consegui fazer reflexivamente no script bash?
" en_dictionary.sh " ( MVE adicionado apenas após a primeira correção é a entrada para baixo, role para baixo)
#!/bin/bash
url="https://www.diki.pl/slownik-angielskiego?q="
for e in $(cat lst-pl_wrds.txt)
do
for o in $e
do
url="${url}${o}&end"
firefox --new-tab "$url" & timeout 1 >nul
done
done
O exemplo acima, embora sintaticamente correto, não será capaz de executar a tarefa como imaginamos devido ao fato de ser um fantoche. É apenas para o esboço da funcionalidade.
Para estimular a imaginação de como ele deve se comportar, mostrarei o script em lote, que é totalmente operacional no Windows.
" en_true_up.bat " (exemplo funcional de outro sistema operacional)
@ECHO OFF
SETLOCAL
REM remember set "Encoding" to "ANSI" for "lst-pl_wrds.txt"
chcp 1250
fOR /f "delims=" %%e IN ('type "lst-pl_wrds.txt"') DO FOR %%o iN (%%e) do start "%%o" /d "C:\Program Files\Mozilla Firefox" firefox.exe "https://www.diki.pl/slownik-angielskiego?q=%%o&end"&timeout /t 1 >nul
GOTO :EOF
" lst-pl_wrds.txt "
łódka dwa trzy cztery piec
Com base em um script de lote funcional e um bash fictício, é possível criar instruções bash adequadas, com o mesmo poder do Windows?
O que eu quero? Script funcional com dicionário no Linux. Algo que será uma conversão e modificação eficiente do script.
A solução proposta por você também pode ser inovadora, com recursos da família Unix exclusivos de um sistema específico.
Também encontrei alguns materiais úteis no processo de desenvolvimento:
xargs -a ff_url.txt firefox -new-tab "$line"
Adição: https://wiki.mozilla.org/Firefox/CommandLineOptions
Tenha um enigma interessante e bem-sucedido. Obrigado por quaisquer sugestões e comentários.
Existe uma boa solução de uma perspectiva mais ampla?
Boa sorte.
MCVE acabou de editar:
O en_dictionary.sh
script e o lst-pl_wrds.txt
arquivo necessário para ele, que deveriam ser salvos como UTF-8
neste caso, deveriam retornar abas funcionais, o que não é o caso.
A execução do sh
script mencionado retorna guias com o seguinte URLs
e ainda por cima em uma ordem aleatória, o que não é o comportamento esperado e a sequência de caracteres é inválida:
(1) https://www.diki.pl/slownik-angielskiego?q=%C5%82%C3%B3dka&end (?q=łódka&end)
(2) https://www.diki.pl/slownik-angielskiego?q=%C5%82%C3%B3dka&enddwa&endtrzy&endcztery&endpiec&end (?q=łódka&end&enddwa&endtrzy&endcztery&endpiec&end)
(3) https://www.diki.pl/slownik-angielskiego?q=%C5%82%C3%B3dka&enddwa&endtrzy&endcztery&end (?q=łódka&end&enddwa&endtrzy&endcztery&end)
(4) https://www.diki.pl/slownik-angielskiego?q=%C5%82%C3%B3dka&enddwa&end (?q=łódka&end&enddwa&end)
(5) https://www.diki.pl/slownik-angielskiego?q=%C5%82%C3%B3dka&enddwa&endtrzy&end (?q=łódka&end&enddwa&endtrzy&end)
Gostaria que o script en_dictionary.sh
fosse corrigido e melhorado de forma que executá-lo abrisse as seguintes abas no navegador Firefox e, de preferência, mantivesse a ordem delas. Este é o comportamento que espero:
https://www.diki.pl/slownik-angielskiego?q=łódka&end
https://www.diki.pl/slownik-angielskiego?q=dwa&end
https://www.diki.pl/slownik-angielskiego?q=trzy&end
https://www.diki.pl/slownik-angielskiego?q=cztery&end
https://www.diki.pl/slownik-angielskiego?q=piec&end
O mais importante para mim é o efeito e o resultado correto da execução do script. O método não é importante. Espero a ação acima.
Gostaria de destacar mais dois pequenos fatos sobre a operação deste script falho, que não são esperados. Erro no terminal que diz Try 'timeout --help' for more information.
e cria um nul
arquivo no diretório de destino, o que não deveria ser o caso.
Espero que as informações sejam completas e ajudem a criar um en_dictionary.sh
arquivo de trabalho, que é o propósito do tópico.