- Vezeték nélküli fülhallgatók
- Milyen billentyűzetet vegyek?
- Milyen egeret válasszak?
- Érkezik Magyarországa az LG szuper dizájnos hordozható projektora
- Milyen videókártyát?
- Azonnali fotós kérdések órája
- Melyik hordozható audiolejátszót (DAP, MP3, stb.) vegyem?
- Intel Core i3 / i5 / i7 8xxx "Coffee Lake" és i5 / i7 / i9 9xxx “Coffee Lake Refresh” (LGA1151)
- Épített vízhűtés (nem kompakt) topic
- Házimozi, és Hifi kábelezés!
Hirdetés
-
Megjelenési dátumot végre a Men of War II (PC)
gp Többszöri halasztás után végre megkapjuk a régóta várt folytatást.
-
Megjelentek az első HMD okostelefonok, ezek a magyar áraik
ma Három készülékkel indít saját név alatt a gyártó: Pulse, Pulse Plus és Pulse Pro. Májustól kaphatók.
-
27 hüvelykes, játékra szánt kijelzővel újít az MSI
ph A cég MI-vel kacérkodó megoldásának képfrissítési frekvenciáját 250 Hz-ig srófolhatjuk fel.
Új hozzászólás Aktív témák
-
Jester01
veterán
Mert itt már a while-nak (illetve az azt futtató alshellnek) kell megadni az átirányítást.
while [ $COUNT -lt 2 ]
do
read sor
echo $sor
COUNT=$((COUNT+1))
done < $1
MOD: Illetve kezdők jobban szokták szeretni a cat $1 | while ... formát mert jobban átlátható. Viszont indít egy fölösleges cat processzt.
[Szerkesztve]Jester
-
Jester01
veterán
Ez így nem lesz jó, mert a belsõ ciklus mindig újrakezdi a fájl olvasását az elejérõl.
Szóval mindenképpen az a while read sor kell kívülre. Belül meg simán csak számolod a sorokat, és 24 után egy if segítségével vársz egy entert és nullázod a számlálót. Még lesz vele egy kis gubanc, mégpedig az, hogy az entert váró read is a már átirányított fájlból akar majd olvasni. Szóval azt meg vissza kell irányítani a terminálra Ehhez célszerû elmenteni a ciklus elõtt az stdin fájlleíróját, és a belsõ readnek megadni. Olvasd el a man bash átirányításról szóló részét, különös tekintettel a fájlleirók másolására.Jester
-
Jester01
veterán
Nézd meg ngabor2 szkriptjét, a wc sajnos gonosz módon kiírja a fájl nevét is. Szóval a sorszámoláshoz kell a cut is.
A ciklusban nyilván nem jó a $i -ge 2 feltétel (még akkor sem ha az ott tkp 24 akart lenni), hiszen így az első képernyő után már soronként várná az entert.
A for ciklusba a $[$HOSSZ + 1] helyett simán $HOSSZ + 1 kell (vagy egyszerűen i <= $HOSSZ ugye). A head után hiányzik a fájlnév ($1).
MOD: a szóközt tartalmazó fájlok helyes kezeléséhez a megfelelő helyeken idézőjelbe kell tenni a $1-et.
[Szerkesztve]Jester
-
Jester01
veterán
Ez sajnos még mindig nem jó
Amit a wc-vel kapcsolatban írtam, azt nem vetted figyelembe.
A sor kiírás az if elé kell, hiszen azt mindig meg kell csinálni.
A head-bõl kimaradt a $ jel az i elõl, illetve a szoveg helyett $1 kell.
Az if-ben rossz helyen van a $ jel, helyesen if [ $x -lt 25 ] és kimaradt a then.
Az x=x+1 helyesen x=$((x+1))
A read elõtti fi az gondolom inkább egy else, és a fi a done elé való.
k=`wc -l ''$1'' | cut -d\ -f1`
x=1
for ((i=1;i<=k;i++))
do
head -n $i ''$1'' | tail -n 1 #ez tuti azt csinálja, h minden sort egyesével kiír.
if [ $x -lt 25 ]
then
x=$((x+1))
else
read
x=1
fi
doneJester
-
Jester01
veterán
Kérlek szépen a sima read-es változat az ennyi:
i=0
exec 3<&0
cat ''$1'' | while read line
do
echo ''$line''
if [ $((i++)) -eq 24 ]
then
read <&3
i=0
fi
done
A trükk amit említettem az exec-es sor. A fájlleíróknak linuxban számuk van. A 0,1,2 rendre az stdin, stdout és stderr. A többit arra használod amire akarod. A 3<&0 átirányítás azt jelenti, hogy a 0-ás bemeneti fájlleírót (ami ezek alapján akkor az stdin) duplikálja 3-as számúként.
A while ciklus a pipe miatt alshellben fog futni, aminek az stdin-je a cat stdout-jára van kötve ezért ''elveszik'' a szülõ shell stdin-je (a terminál). Viszont a 3-as számmal ez továbbra is elérhetõ. Vagyis a belsõ read-nek megmondjuk, hogy innen olvasson. (az az átirányítás technikailag azt jelenti, hogy a 3-ast ismét visszaduplikálja a 0-ásra, mivel a read onnan fog olvasni.)
Bonyolultan hangzik, de egyszerû. Remélem érthetõ voltamJester
-
Új hozzászólás Aktív témák
- Windows 10 Home COA fizikai licencek kiárusítás ingyenes szállítással
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! LEGOLCSÓBB! Automatikus 0-24
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin stb.
- Microsoft licencek a legolcsóbban - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Eredeti Windows, telepítéssel! Digital Doctor Számítógép Szerviz