Portál AbcLinuxu, 12. května 2025 07:27
Řešení dotazu:
while true; do read prelozit; dict "$prelozit"; done
Zkoušel sem printf, ale nevyřešil sem to.
Stačí nahlédnout do manuálové stránky, jak funguje echo
.
while read slovo; do echo -n "${slovo} "; dict "$slovo"; done
S printf
to jde taky, ale možná je to kanón na vrabce.
while read slovo; do printf '%s %s\n' "$slovo" "$(dict "$slovo")"; done
Jo aha, dotaz možná byl, jestli se to může psát na tentýž řádek jako zadání po stisku Enter. To sice jde, ale ne úplně triviálně. Budou k tomu potřebné sekvence pro ovládání terminálu. Kompletní návod s příklady je tady.
while true; do read -s prelozit; echo "$prelozit" $(dict "$prelozit"); done
Takže tady je varianta, která opravdu posouvá kurzor v terminálu a po zadání slova připíše překlad na tentýž řádek. No, je to trochu fujtajbl.
while read slovo; do echo -en '\x1b['"${#slovo}"'C\x1b[1A '; dict "$slovo"; done
(Ukončuje se to pomocí Ctrl+D, jako ostatně všechny rozumně napsané cykly kolem read
.)
Smyčka s read
je řešením.
Mimochodem, neexistuje žádný „bash slovník“ a příkaz dict
nemá nic společného s bashem.
Tedy, pojem „bash slovník“ připomíná spíš něco jako declare -A pole
(tj. asociativní pole) než překlad.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.