[REZOLVAT] Variabilă funcție

15 posts / 0 new
Last post
shogun1
shogun1's picture
[REZOLVAT] Variabilă funcție

Salut.
Vreau să fac o funcție bash dintr-o comandă care traduce CLI din engleză în română (google translate...):
wget -U "Mozilla/5.0" -qO - "http://translate.google.com/translate_a/t?client=t&text=translation+example&sl=auto&tl=ro" | sed 's/\[\[\[\"//' | cut -d \" -f 1
Cum pot atribui o variabilă pentru orice, fiecare termen de tradus? Deci pentru toți termenii ce înlocuiesc ”example”: $EACH, $each nu merg (nici puși între ' sau "), $1+$2+$3+$4+$5+$6+$7+$8+$9+${10} merge, dar nu arată prea bine...

#Traducere
trans () {
wget -U "Mozilla/5.0" -qO - "http://translate.google.com/translate_a/t?client=t&text=$1+$2+$3+$4+$5+$6+$7+$8+$9+${10}&sl=auto&tl=ro" | sed 's/\[\[\[\"//' | cut -d \" -f 1
}

Patkos Csaba
Daca stii numarul total de

Daca stii numarul total de variabile, poti sa-ti construiesti o methoda de genul:
#!/bin/bash
echo $1+$2
numberOfVars=2
composedVar=""
for word in {1..2}
do
eval composedVar="$composedVar+\$$word"
done
echo $composedVar
Pune asta intr-un script si ruleaza-l cu 2 parametri daca nu intelegi ce se intampla.
Eventual vezi si documentatia de aici: http://tldp.org/LDP/abs/html/ivr.html

Csabi′s BLOG

Linux registered user # 457717

shogun1
shogun1's picture
Numărul termenilor diferă în

Numărul termenilor diferă în funcție de textul de tradus... De aia întrebam de o variabilă care să se refere la toți (indiferent de număr) termenii. Scuze, nu mă priicep la chestii de-astea, nu există ceva gen $each, $EACH sau $ALL, $all???
O să verific și ce ai pus aici să văd ce și cum, mulțumesc.

==Those who feel the breath of sadness Sit down next to me Those who find they’re touched by madness Sit down next to me Those who find themselves ridiculous Sit down next to me == http://stressat.blogspot.com/

Patkos Csaba
Nu, nu exista 'each' sau

Nu, nu exista 'each' sau 'foreach', dar ai putea sa inlocuiesti 'for'-ul meu cu un 'while' in care sa incrementezi un contor si sa te opresti cand variabila nu mai exista. Vezi la linkul urmator cum verifici in bash daca este sau nu setata o variabila: http://jkroon.blogs.uls.co.za/it/scriptingprogramming/bash-variables

Csabi′s BLOG

Linux registered user # 457717

shogun1
shogun1's picture
Ok, deocamdată e cam mult

Ok, deocamdată e cam mult pentru mine, dar o să-ncerc, mulțumesc!

==Those who feel the breath of sadness Sit down next to me Those who find they’re touched by madness Sit down next to me Those who find themselves ridiculous Sit down next to me == http://stressat.blogspot.com/

V3n3RiX
Yey, o provocare...in capul

Yey, o provocare...in capul meu deja se formeaza o forma posibila a codului...Te tin la curent cu ceea ce am obtinut...

shogun1
shogun1's picture
Rezolvat

Am mai încercat și eu câte ceva, cred că am găsit o formă mai elegantă, mulțumesc pentru indicații!!!

#Traducere
trans () {
for ARG in "$*"
do
wget -U "Mozilla/5.0" -qO - "http://translate.google.com/translate_a/t?client=t&text=$ARG&sl=auto&tl=ro" | sed 's/\[\[\[\"//' | cut -d \" -f 1
done
}

Încă o intrebare: dacă în loc de "$*" ” pun "$@" outputul are o formă ciudată, chiar dacă corectă (hâm, cât de corect poate google translate... :D ), așa ar trebui să apară, câte un termen pe linie?

http://i.imgur.com/azkqP.jpg

LE: da, se pare că "$@" tratează separat fiecare termen în parte, de sine stătător, m-am uitat mai bine și la traducere, diferă față de prima variantă!

==Those who feel the breath of sadness Sit down next to me Those who find they’re touched by madness Sit down next to me Those who find themselves ridiculous Sit down next to me == http://stressat.blogspot.com/

maaxx
maaxx's picture
omg ... http://image.bayimg

' Zombie: "Thou canst not kill that which doth not live. But you can blast it into chunky kibbles." ' (Quake1 manual, chapter VI, section D, line 676)

shogun1
shogun1's picture
???

@maax: ”403 - Forbidden”... :(

==Those who feel the breath of sadness Sit down next to me Those who find they’re touched by madness Sit down next to me Those who find themselves ridiculous Sit down next to me == http://stressat.blogspot.com/

maaxx
maaxx's picture
Eh, era numa o imagine care

Eh, era numa o imagine care sublinia sigla Archlinux ... wtf, si tu ai tradat? :D

' Zombie: "Thou canst not kill that which doth not live. But you can blast it into chunky kibbles." ' (Quake1 manual, chapter VI, section D, line 676)

V3n3RiX
Numai tradatori de neam si de

Numai tradatori de neam si de patrie (vorba lui Vadim) pe aici.

@shogun1, solutia pe care o gandisem eu era mult mai complexa. :))

N3o
N3o's picture
:)))) Eu mereu am functionat

:)))) Eu mereu am functionat pe principiul "ubi bene, ibi patria" si in orice caz, nu m-am indepartat asa tare, inca-s in "neamul" RPM. Spre deosebire de altii *coughs* - symbianflo... :))

shogun1
shogun1's picture
@V3n3RiX : eu cautam ceva

@V3n3RiX : eu cautam ceva simplu (sunt un tip simplu :( ), si care sa faca ce doream, dar poti sa pui si varianta ta, s-o vedem.

Offfff, daca 2011 era macar pe aproape ca 2010.1/ 2010.2 poate inca foloseam Mandriva (poate, ca Arch chiar m-a cucerit)! Mai incerc cu 2012!
Lasati dom'ne ca se putea si mai rau!!! Ia inchipuiti-va ca treceam la *buntu, mint, mageia. :P

==Those who feel the breath of sadness Sit down next to me Those who find they’re touched by madness Sit down next to me Those who find themselves ridiculous Sit down next to me == http://stressat.blogspot.com/

symbianflo
symbianflo's picture
@n3o

@n3o
ce-ai ma ti-o ramas in git??? :D da ??? bine.... sa te mai aud ca vrei ceva pe fedora ...fedor(**)ristule ...
Si ce vrei sa zici cu tusea aia ? Eu un host il am pe mdv de mic copil .... tradaciosule ...

@Venerixule
laso mai moale ca numa ce ai instalat rosa .... ca pe arch o tebuit sa ai doctoratul sa setezi un rahat de monitor... :D
asa ca tot ala striga la care ii arde casa ,

@TOTI
lasati-l in pace pe shogunelu nostru , inca nu cunosc nici unul care sa faca atitea progrese si sa ajute atita lume in asa putin timp ...sa nu mai vorbim de parteciparea lui la ghid ( si ce participare),,,, asa ca ciocul mic domnilor ... :D
Shogunelu BE GU MINE.... :D Sa stii ca io tin cu tine indiferent ce distro ai folosi ...( sau ma rog aproape... )


http://www.mandrivausers.ro/ MRB aint no shit , :p Linux user number 507107 Nu dați banii pe prostii, puneți Linux pe PISI ![ARLUG]

Unix is user-friendly. It’s just very selective about who its friends are

N3o
N3o's picture
Io n-am nimic cu shogun! Io

Io n-am nimic cu shogun! Io cu tine am... >:)))