[Megoldva][Bash] Szöveg szavai tömb elemekbe

Sziasztok!!

Hogy tudnám ezt megcsinálni.
Példa:
TEXT="A hó fehérke még alszik ...."
a szavak (azaz a szóközökkel elválasztott karakterek) bekerüljenek egyesével egy tömbe

TOMB[1]="A"
TOMB[2]="hó"
TOMB[3]="fehérke"
TOMB[4]="még"
...
TOMB[N]="vége"

[Megoldás]
IFS=' ' read -ra TOMB <<< "$TEXT"
for i in "${TOMB[@]}"
do
echo $i
done

Hozzászólások

Azért a SHELL környezeti változónak elhinni, az azért elég merész ;-) Nekem a "set -o" parancs jött be: Ennek csh* -ban egy hibaüzenet az eredménye, amiben a arról regélnek, hogy a változók nevének betűvel kell kezdődnie. Ami nem ilyen hibaüzenetet ad, az valami Bourne-shell származék. De avatott szem számára már maga a normál "set" parancs kimenete is árulkodó.
=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?

Ertem, de mi koze ennek a gcc verziojahoz, hogy mit adsz meg config script parameternek? A gcc egy fordito. A config script meg altalaban megnezi minden megvan e a forditashoz meg beallit -L es -I-ket azok alapjan amiket bele szeretnel linkelni a vegleges progidba.

A bash meg bash, a zsh meg zsh, tok mindegy hogy hogyan forditod. Vagy gondolod, hogy a firefox-ot tudod ugy forditani, hogy libreoffice legyen belole????

Zavar van az eroben es a fejedben.

Vagy te nem érted meg mire gondoltam.

Senki nem mondott ilyet hogy bash forrásból sambat forditok! De igen is komoly szerepe van annak , hogy milyen gcc verzióval forditasz.

De nézzél nyugottan hülyének, inkább kérdezek hülyeségeket , mint hogy olyan legyek mint Te : "nagy tudású", arogáns.

A confignak meg csak csak szerepe van abban, hogy mit is forditasz, de hogy a gcc verziojanak?

Nem neztelek hulyenek, csak elmondtam, hogy kevered a dolgokat. Zavar van. Es leirtam, hogy mi mire valo. Ha megbantottalak az erzeseidben hat elnezest, de akkor is tegyuk mar tisztaba mi mire valo. A gcc-nek tok mindegy, hogy eppen samba-t vagy bash-t forditasz, mivel nem tud rola. Csinalja a sajat kis object allomanyait a forrasbol es kesz. Fogalma sincs mit fordit. Azt csak te tudod. Amit irtal configure-t meg csak arra valo, hogy majd a Makefile-nak beallitsa miket buildeljen es majd a linkernek, hogy melyik object-ekbol allitsa elo a futtathato programot. Azaz igen, meg lehet csinalni, hogy osszemasolom a bash es a zsh forrasat, majd irok egy configuret, amiben parameter, hogy melyik shell-t akarom forditani, de ettol meg csak azt fogja csinalni, hogy belep a valasztott konyvtarba es lefuttatja a make-t. Azaz akkor is bash-t fordit.

Szoval megint eljutottunk oda, hogy a configure-nak semmi koze a gcc-hez. Vsakis a programodhoz, amit forditani szeretnel. (Persze lehet a configure-nak olyan opcioja, ami kimondottan gcc opciokat allit, pl. kikapcsolja a warningokat forditaskor, de ennek megint nicns koze a programodhoz)

Csak hogy ne irjak hulyeseget megneztem, hogy van e a bash changelog-ban barmi ami gcc verzio fuggo lenne, de csak olyan valtoztatasokat es fix-eket talaltam ami a -Wall eseten kiirt warningokat javitotta.

Ezen kivul megneztem a gcc man-jat (mar regen neztem), hogy van e valami uj moka, amivel befolyasolhatnam azt, hogy eppen mit forditok es kivalaszthatnam egy program funkcioit benne, mint pl. --compile=only-core-if-samba, de nem talaltam ilyet.

A gcc verzio akkor fontos, ha olyan funckiot (forditoet es nem a forditando programet!!!!) akarsz hasznalni, ami neked kell. De mint irtam, ennek semmi koze magahoz a .c es .h allomanyokhoz, amiket majd a forditashoz hasznalsz.

Szoval eroskodhetsz, hogy "igenis komoly szerepe van", de akkor csak azt jelzed, hogy tovabbra sem erted mirol beszelsz.

Mikor forditottal utoljara barmit is? Szeretnem, ha irnal egy olyan compiler opciot, ami hatassal van a forditando program opcioira (es itt most ne -D-t irj, mert az mar a kodra vonatkozik), majd irnal egy masik gcc verziot, amiben azzal az opcioval mas program jon ki belole, ugyanarra a make-re.

Koszonom. Varok.

Addig meg nyugodj le.

Az elso linked-nel valaki definolta, hogy csakis gcc4.4-el menjen. Mivel valoszinuleg olyan dolgokat hasznal, amit csak a gcc4.4 ert meg. Nem neztem meg a forraskodjat.
De a kerdesem az, hogy ennek mi koze van ahhoz, hogy mit irsz egy configure vegere?

A masodik linkedben a gcc sajat magat buildelne es mint irjak mind a ket architekturara (x64 es x32, mert ez a default), de nem volt telepitve a 32 bites glibc igy ertelem szeruen nem tudja buildelni a 32 bites gcc-t (mert ahhoz bizony ez kell). Irja is a megoldast, hogy add a configure-nak ("configuring GCC with --disable-multilib", azaz nem a gcc-nek!!!) a disable-multilib kapcsolot, ami olyan Makefile-t general, ahol nincs benne az, hogy lefusson a 32 bites gcc forditasa. Erted? A makefile mondta meg (vagy egy -DNO_BUILD32), hogy forditsd le a 32 bitest is, de a disable-multilib kiszedi ezt a Makfile-bol vagy -D-vel beallitja, hogy legyen NO_BUILD32, vagy hasonlo ha van ifdef, igy nem fut ra erre az "agra".
(nem neztem meg a configure-t, hogy pontosan mit csinal a -disable-multilibre)

Tehat egyik sem arrol szolt, amirol beszeltunk. Hogy a gcc-nek koze lenne hozza, hogy mit is forditasz egy programban. A gcc lefordit mindent, amit odaadsz neki es kesz, de gcc opciokkal. Semmi koze pl. a --prefix kapcsolohoz, amit a configure-nak adsz at es majd az install fogja hasznalni. A gcc nem tudja mit akarsz. Kap egy rakas allomanyt es leforditja. Ami tudja mit akarsz az valamilyen make pl.

Eredetileg erre kerdeztem ra, amikor ezt irtad: "számit hogy milyen gcc verzióval lett forditva" es "és akkor megadod pld:./config --C-shell vagy ./config --Hulyeség -shel , vagy valami ilyesmi". Ennek a kettonek nincs koze egymashoz. Tovabbra sem.

A gcc verzioja maximum a forditas kozbeni optimalizacioban, stb van szerepe. De le lehet forditani egy regi gcc-vel is a bash-t, meg egy vadiujjal is, annak (majdnem) ugyanaz a bash lesz a kimenete. A configure-nak meg nincs koze a gcc-hez.

De hagyjuk, legyen inkabb neked igazad, mert en elfaradtam ebben. :D

Fogjuk fel úgy, hogy valamikor csomagoltam egy olyan gcc-t, és szétszórtam a világba, ami a linkelés kimenetéül mindig egy bash nevű binárist ad!

Ebben az én betrójaizott univerzumomban az a rossz, hogy tényleg számít, hogy az én gcc-mel fordították-e azt a valamit, ami végül bash lett, de az a jó, hogy mindekettőtöknek igaza van (krono-szinklasztikus infundibulum?) ; nekem meg az a legrosszabb, hogy nem kicsit kellett erőlködnöm, hogy ilyen baromsággal előálljak.

declare -a TOMB

TOMB=(\
A \
hó \
fehérke \
még \
alszik)

echo $TOMB
A

echo ${TOMB[@]}
A hó fehérke még alszik

echo ${TOMB[2]}
fehérke

for i in ${!TOMB[@]} ; do printf "%2s %s\n" "$i" "- ${TOMB[$i]}" ; done
0 - A
1 - hó
2 - fehérke
3 - még
4 - alszik

TOMB_SIZE=$(( ${#TOMB[@]} - 1 ))
echo $TOMB_SIZE
4

## öö, elnézést ez nem jó :p csak én így használtam valahol for i in $(seq 0 ${TOMB_SIZE})

szal
TOMB_SIZE=${#TOMB[@]}
echo $TOMB_SIZE
5

lásd Zahy hozzászólását, hogy 0-tól indul.