- Samsung Galaxy A56 - megbízható középszerűség
- Telekom mobilszolgáltatások
- Fotók, videók mobillal
- Bemutatkozott az Oppo kamerás csúcsmodellje
- Milyen okostelefont vegyek?
- Samsung Galaxy A55 - új év, régi stratégia
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Xiaomi 14 - párátlanul jó lehetne
- Okosóra és okoskiegészítő topik
- Szaporodik és sokasodik a One UI 8.5
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
Sianis
addikt
cat $1 | while read line; do
echo $line
doneA fájl soronkénti feldolgozása kb ennyi.
Az meg, hogy fájl-e a $1 paraméter például:
if [ -t $1 ]; then
echo "Yes it is"
fiSianis
-
Votyesz13
tag
Sziasztok
Egy olyan kérdésem lenne hogy a feladatom egy olyan szkript írása ami egy fájlt vár bemenetként.Ezt hogy tudom elérni?És hogy soronként olvassa ezt?Getline-al vagy hogyan?
Előre is köszi.üdv bolvar
-
Heller2
aktív tag
Sziasztok !
lenne egy kérésem egy feladatot illetően...
Feladat a következő:
Scriptet kell létrehozni, amely user-eket hoz létre, úgy nézzen ki, hogy tetszőleges számú usert hozzon létre, törölni is tudja az usereket, fájlból vegye az új usereket ( ezt nem tudom mit jelenet ), fájlban valódi név is legyen, hibák kezelése, kiírása, vagy más paramétereket is kiírhat. ( pl. Kati - Kiss Katalin )Ezt valaki leírná ez elejétől, pontról-pontra ?
Szeretem én a linuxot, csak ne bonyolódjak bele...
Nem tudom számít-e, de Debiánt használunk.. -
dabadab
titán
Akarok egy scripteket elindító scriptet írni. Hogy lehetséges az, hogy csak akkor induljon el a következő, ha az előző sikeresen lefutott?
A következő elgondolás jó?
./usr/.../script1 && ./usr/.../script2 && ./usr/.../script3
& kapcsolatnál ha minden igaz, akkor csak akkor megy tovább amikor az előtte levő sikeresen lefutott igaz?
Vagy más megoldás kellene ?
másik kérdésem, a keletkezett fájlt hogy tudom emailban elküldeni? mert valamiért nem akar eljönni, a mail -s "tárgy" uuencode fájlnév email címmel

"& kapcsolatnál ha minden igaz, akkor csak akkor megy tovább amikor az előtte levő sikeresen lefutott igaz?"
Egeszen pontosan csak akkor, ha az elozo parancs exit levelje 0 volt. Az osi unixos szokas, hogy ha rendben lefut, akkor ez nulla, ha meg nem, akkor nem nulla, viszont pl. a sajat scripteknel figyelned kell erre (a shell scriptek a legutolso futtatott parancs exit leveljet kapjak meg, es ha pl. ez egy echo "hiba tortent" (ami persze szepen le fog futni es 0-t ad vissza), akkor utana be kell raknod pl. egy exit 1 utasitast). Egyebkent teljesen jol hasznalhato konstrukcio, pl. az unzip x.zip && rm x.zip az egyik kedvencem

A levelezeshez meg vmi olyasmi kellene, hogy uuencode file.bin | mail -s subject akarki@akarhol.org
-
Badb0y
addikt
Akarok egy scripteket elindító scriptet írni. Hogy lehetséges az, hogy csak akkor induljon el a következő, ha az előző sikeresen lefutott?
A következő elgondolás jó?
./usr/.../script1 && ./usr/.../script2 && ./usr/.../script3
& kapcsolatnál ha minden igaz, akkor csak akkor megy tovább amikor az előtte levő sikeresen lefutott igaz?
Vagy más megoldás kellene ?
másik kérdésem, a keletkezett fájlt hogy tudom emailban elküldeni? mert valamiért nem akar eljönni, a mail -s "tárgy" uuencode fájlnév email címmel

-
FixY67
senior tag
-
kraftxld
félisten
-
FixY67
senior tag
-
kraftxld
félisten
-
ngabor2
nagyúr
-
doc
nagyúr
-
kraftxld
félisten
lenne egy nem túl bonyolult problémám, valszeg egyetlen ciklussal (ügyesebbeknek egy sorral) is megoldható, csak én lusta vagyok

szóval van egy könyvtár, abban képfile-ok. IMG_xxxx.JPG a nevük, az xxxx egy sorszám. ezeket kellene átnevezni kep_yymmddxx.jpg-re, ahol az yy az év, a mm a hónap, dd a nap, xx meg egy sorszám 01-től. a dátum a létrehozás, vagy az utolsó módosítás dátuma, nem az aktuális.
Total Commander, file, csoportos átnevezés.
-
ngabor2
nagyúr
lenne egy nem túl bonyolult problémám, valszeg egyetlen ciklussal (ügyesebbeknek egy sorral) is megoldható, csak én lusta vagyok

szóval van egy könyvtár, abban képfile-ok. IMG_xxxx.JPG a nevük, az xxxx egy sorszám. ezeket kellene átnevezni kep_yymmddxx.jpg-re, ahol az yy az év, a mm a hónap, dd a nap, xx meg egy sorszám 01-től. a dátum a létrehozás, vagy az utolsó módosítás dátuma, nem az aktuális.
-
Badb0y
addikt
Kérdésem lenne, hogyan tudom egy fájl tartalmát egy csv megadott oszlopába megadott helytől kezdődően exportálni.
Úgy szeretném, hogy minden sor külön cellába legyen.
-
HUNNIA1920
őstag
1) a megoldás során végig az eredeti directoryban állsz (ami a B szülője). Ezért például az E/C forma nem jó, hiszen az E a B-ben van. Tehát B/E/C formában kell rá hivatkozni. Hasonlóan a többire is.
2) az echo az nem üres fájlt hoz létre, beleír egy entert. Ha ez probléma, akkor echo -n vagy egyszerűen touch.
3) a chmod nem csak az oktális jogokat szereti, ismeri a szimbolikust is
4) az mkdir-nek egyből meg is lehet adni jogokat
Pl. mkdir -m u=rwx,g=rxs,o=rx BKezdek bele keveredni.
Akkor így lesz:mkdir B; chmod 2755 B
mkdir B/E; chmod 1751 B/E
echo > B/E/C; chmod 640 B/E/C
ln B/E/C B/D
ln -s D B/AHa így sem jó, akkor tényleg nem tudom hogy lesz.

-
HUNNIA1920
őstag
Így van, kicsit siettem, aztán azért írtam el. Setgid - et akartam írni.

-
FixY67
senior tag
-
FixY67
senior tag
-
bambano
titán
Azt azért elárulhatná valaki, hogy oktális formában megadva a jogokat, a setuid, setgid biteket hogy lehet levakarni egy állományról? (nem tudom, van-e jelentősége, hogy valószínűleg könyvtár volt az áldozat)
Egy Ubuntu 9.10-en próbálkoztam és csak u-s g-s formában működött, numerikusan nem.
Lusta voltam utánanézni, hogy ez bug v. így kell működnie.még mindig firtatnám azt a kérdést, hogyha te a hsz-edben megírod, hogy 2xxx az setGID, akkor ő hogy hozza össze belőle, hogy setuid...
-
Jester01
veterán
-
FixY67
senior tag
Sejtem már... azon a nyomorult Ubin van valami apparmor vagy miatúró... Nem ismerem, nem tudom, pontosan mit csinál, de könnyen lehet, hogy az pofázott bele az életembe.
Egy biztos, linuxos (Tomato) routeren, rootként működik:
root@router:/tmp/home/root# mkdir x
root@router:/tmp/home/root# chmod 6777 x
root@router:/tmp/home/root# ls -l
drwsrwsrwx 2 root root 40 Mar 27 15:14 x
root@router:/tmp/home/root# chmod 0777 x
root@router:/tmp/home/root# ls -l
drwxrwxrwx 2 root root 40 Mar 27 15:14 xNem nyert. A debianomon nincs ilyesmi, mégsem működik. Najó, akkor következik valami doksi olvasás, hátha kiderül...
-
FixY67
senior tag
MOD: hm, számít, hogy könyvár
Arról nekem se szedi le.
man chmod:
chmod preserves a directory's set-user-ID and set-group-ID bits unless you explicitly specify otherwise. You can set or clear the bits with symbolic modes like u+s and g-s, and you can set (but not clear) the bits with a numeric mode.Sejtem már... azon a nyomorult Ubin van valami apparmor vagy miatúró... Nem ismerem, nem tudom, pontosan mit csinál, de könnyen lehet, hogy az pofázott bele az életembe.
Egy biztos, linuxos (Tomato) routeren, rootként működik:
root@router:/tmp/home/root# mkdir x
root@router:/tmp/home/root# chmod 6777 x
root@router:/tmp/home/root# ls -l
drwsrwsrwx 2 root root 40 Mar 27 15:14 x
root@router:/tmp/home/root# chmod 0777 x
root@router:/tmp/home/root# ls -l
drwxrwxrwx 2 root root 40 Mar 27 15:14 x -
Jester01
veterán
Azt azért elárulhatná valaki, hogy oktális formában megadva a jogokat, a setuid, setgid biteket hogy lehet levakarni egy állományról? (nem tudom, van-e jelentősége, hogy valószínűleg könyvtár volt az áldozat)
Egy Ubuntu 9.10-en próbálkoztam és csak u-s g-s formában működött, numerikusan nem.
Lusta voltam utánanézni, hogy ez bug v. így kell működnie.MOD: hm, számít, hogy könyvár
Arról nekem se szedi le.
man chmod:
chmod preserves a directory's set-user-ID and set-group-ID bits unless you explicitly specify otherwise. You can set or clear the bits with symbolic modes like u+s and g-s, and you can set (but not clear) the bits with a numeric mode. -
FixY67
senior tag
Azt azért elárulhatná valaki, hogy oktális formában megadva a jogokat, a setuid, setgid biteket hogy lehet levakarni egy állományról? (nem tudom, van-e jelentősége, hogy valószínűleg könyvtár volt az áldozat)
Egy Ubuntu 9.10-en próbálkoztam és csak u-s g-s formában működött, numerikusan nem.
Lusta voltam utánanézni, hogy ez bug v. így kell működnie. -
Jester01
veterán
Na így már rendben van.

Erre voltam kíváncsi, hogy melyik hányas számmal kezdődik. Attól féltem, hogy ez is mindenhol más, de így akkor már tudni fogom, hogy pl.: 2xxx - es az setUID - os. Remélem így már menni fog a Zh is.
Köszi szépen a türelmet és a segítséget
Szerk.: tehát akkor így lesz:
mkdir B; chmod 2755 B
mkdir B/E; chmod 1751 B/E
echo > E/C; chmod 640 E/C
ln E/C E/B/D
ln -s D B/Achmod 1751: rwxr-x--t ---> 111 101 001
1) a megoldás során végig az eredeti directoryban állsz (ami a B szülője). Ezért például az E/C forma nem jó, hiszen az E a B-ben van. Tehát B/E/C formában kell rá hivatkozni. Hasonlóan a többire is.
2) az echo az nem üres fájlt hoz létre, beleír egy entert. Ha ez probléma, akkor echo -n vagy egyszerűen touch.
3) a chmod nem csak az oktális jogokat szereti, ismeri a szimbolikust is
4) az mkdir-nek egyből meg is lehet adni jogokat
Pl. mkdir -m u=rwx,g=rxs,o=rx B -
bambano
titán
Na így már rendben van.

Erre voltam kíváncsi, hogy melyik hányas számmal kezdődik. Attól féltem, hogy ez is mindenhol más, de így akkor már tudni fogom, hogy pl.: 2xxx - es az setUID - os. Remélem így már menni fog a Zh is.
Köszi szépen a türelmet és a segítséget
Szerk.: tehát akkor így lesz:
mkdir B; chmod 2755 B
mkdir B/E; chmod 1751 B/E
echo > E/C; chmod 640 E/C
ln E/C E/B/D
ln -s D B/Achmod 1751: rwxr-x--t ---> 111 101 001
"ogy pl.: 2xxx - es az setUID - os.": ezt hogy hoztad össze?
-
HUNNIA1920
őstag
Úgy emlékszem,
4000 - setUID
2000 - setGID
1000 - sticky bit.
Ez utóbbinak eredetileg a programok/library-k esetében volt jelentősége, innen a neve (valami olyasmi rémlik, hogy nem lehetett őket kilapozni a memóriából), mostanság meg valami törléssel kapcsolatos dologra használják, de inkább nem írom le, mert kissé hiányosan emlékszem rá.A man chmod meg annyi, hogy bemész unix/linux shellbe (windows-on telepítesz egy cygwin-t és annak a shelljébe) és kiadod a man chmod parancsot.
Na így már rendben van.

Erre voltam kíváncsi, hogy melyik hányas számmal kezdődik. Attól féltem, hogy ez is mindenhol más, de így akkor már tudni fogom, hogy pl.: 2xxx - es az setUID - os. Remélem így már menni fog a Zh is.
Köszi szépen a türelmet és a segítséget
Szerk.: tehát akkor így lesz:
mkdir B; chmod 2755 B
mkdir B/E; chmod 1751 B/E
echo > E/C; chmod 640 E/C
ln E/C E/B/D
ln -s D B/Achmod 1751: rwxr-x--t ---> 111 101 001
-
FixY67
senior tag
Ezt a "man chmod" - ot nem igazán értettem, de mindegy.
Kicsit utána olvastam ezeknek a kiegészítő biteknek és azt találtam, hogy 3 féle létezik: a setuid, a setgid és a sticky bit. A setuid - nál a usernél változik a végrehajtás (x) s - re, a setgid - nél a csoport végrehajtás lesz s, és a sticky - nél meg az other végrehajtás lesz t.De most pl. Parancs: chmod 4755, Eredményezett jog: rwsr-xr-x - nél a 4 - es szám mit jelent? Mert a 755 az ugye 111 101 101 a bináris maszkok módszere szerint és ugye a user - nél lesz az x betű s. De azt a 4 - es számot nem értem. Annyit tudok, hogy alapértelmezésként 0 áll az első helyen, csak azt nem tüntetjük fel.
Úgy emlékszem,
4000 - setUID
2000 - setGID
1000 - sticky bit.
Ez utóbbinak eredetileg a programok/library-k esetében volt jelentősége, innen a neve (valami olyasmi rémlik, hogy nem lehetett őket kilapozni a memóriából), mostanság meg valami törléssel kapcsolatos dologra használják, de inkább nem írom le, mert kissé hiányosan emlékszem rá.A man chmod meg annyi, hogy bemész unix/linux shellbe (windows-on telepítesz egy cygwin-t és annak a shelljébe) és kiadod a man chmod parancsot.
-
HUNNIA1920
őstag
Ezt a "man chmod" - ot nem igazán értettem, de mindegy.
Kicsit utána olvastam ezeknek a kiegészítő biteknek és azt találtam, hogy 3 féle létezik: a setuid, a setgid és a sticky bit. A setuid - nál a usernél változik a végrehajtás (x) s - re, a setgid - nél a csoport végrehajtás lesz s, és a sticky - nél meg az other végrehajtás lesz t.De most pl. Parancs: chmod 4755, Eredményezett jog: rwsr-xr-x - nél a 4 - es szám mit jelent? Mert a 755 az ugye 111 101 101 a bináris maszkok módszere szerint és ugye a user - nél lesz az x betű s. De azt a 4 - es számot nem értem. Annyit tudok, hogy alapértelmezésként 0 áll az első helyen, csak azt nem tüntetjük fel.
-
FixY67
senior tag
Igen-Igen.

Nagyjából jónak tűnik.
A ? kapcsán meg man chmod -
FixY67
senior tag
Tehát akkor a 2. példa megoldásának ez jó:
mkdir B; chmod 2755 B
mkdir B/E; chmod ? B/E
echo > E/C; chmod 640 E/C
ln E/C E/B/D
ln -s D B/AA 2. sornál nem tudom mi lesz a parancs (chmod után), mert a jogosultságban kiegészítő bit is van és azt nem igazán értem, hogy hogy is van.
A többi különben jó? -
HUNNIA1920
őstag
Azért, mert a feladat (számomra kissé értelmetlenül megfogalmazva) az volt, hogy a C és a D nevű file fizikailag azonos legyen, csak eltérő néven kerüljenek a könyvtárakba. Ehhez előbb létre kellett hozni egy file-t, ez volt a C. Amikor az "echo >C"-vel létrehozod a file-t, akkor keletkezik hozzá egy könyvtár bejegyzés és kap egy ú.n. inode-t. A második parancs annyit csinált, hogy készített egy újabb könyvtárbejegyzést másik könyvtárba, más néven, ami fizikailag ugyanarra a file-ra/inode-ra mutat.
Tehát végeredményben keletkezett egyetlen file-od ami több néven elérhető.
Ha a D-t is "echo >"-val hozod létre, akkor a két file-nak semmi köze nem lesz egymáshoz.Az
echo > A/C
ln A/C A/B/Dután ha beleírsz valamit az A/C-be és megnézed az A/B/D tartalmát, akkor abban is látni fogod a változást.
Tehát akkor a 2. példa megoldásának ez jó:
mkdir B; chmod 2755 B
mkdir B/E; chmod ? B/E
echo > E/C; chmod 640 E/C
ln E/C E/B/D
ln -s D B/AA 2. sornál nem tudom mi lesz a parancs (chmod után), mert a jogosultságban kiegészítő bit is van és azt nem igazán értem, hogy hogy is van.
A többi különben jó? -
FixY67
senior tag
Na és akkor a 3. és 4. sor megoldása miért nem egyezik meg? Mert elvileg mind két sorban ugyan azt kellene csinálni, csak más a név és a hely.
"echo > A/C; chmod 640 A/C
ln A/C A/B/D"Így nem lehetne a 4. sort: echo > B/D; chmod 640 B/D ?
Azért, mert a feladat (számomra kissé értelmetlenül megfogalmazva) az volt, hogy a C és a D nevű file fizikailag azonos legyen, csak eltérő néven kerüljenek a könyvtárakba. Ehhez előbb létre kellett hozni egy file-t, ez volt a C. Amikor az "echo >C"-vel létrehozod a file-t, akkor keletkezik hozzá egy könyvtár bejegyzés és kap egy ú.n. inode-t. A második parancs annyit csinált, hogy készített egy újabb könyvtárbejegyzést másik könyvtárba, más néven, ami fizikailag ugyanarra a file-ra/inode-ra mutat.
Tehát végeredményben keletkezett egyetlen file-od ami több néven elérhető.
Ha a D-t is "echo >"-val hozod létre, akkor a két file-nak semmi köze nem lesz egymáshoz.Az
echo > A/C
ln A/C A/B/Dután ha beleírsz valamit az A/C-be és megnézed az A/B/D tartalmát, akkor abban is látni fogod a változást.
-
HUNNIA1920
őstag
Na és akkor a 3. és 4. sor megoldása miért nem egyezik meg? Mert elvileg mind két sorban ugyan azt kellene csinálni, csak más a név és a hely.
"echo > A/C; chmod 640 A/C
ln A/C A/B/D"Így nem lehetne a 4. sort: echo > B/D; chmod 640 B/D ?
-
FixY67
senior tag
Nem igazán tudom máshogy magyarázni.

Adott egy feladat és adott egy megoldás. A megoldásba mi micsoda?
Vagy akkor mondom úgy, hogy a 2. feladat amit bemásoltam, annak mi a megoldása? Na így már talán könnyebb lesz.
Szerk.: ja és ugye ez a feladat: "Írjon shell scriptet, amely az alábbi fájl bejegyzéseket a megfelelő jogosultságokkal együtt létrehozza az aktuális könyvtáron belül:".
Amit először beírtál, az egyértelmű, de szerintem korábban írtam is: a feladat 1. sorának a megoldások 1. sora a megoldása. A 2.-é a 2. stb.
Szóval így továbbra sem tudok mit mondani... -
HUNNIA1920
őstag
Nem igazán tudom máshogy magyarázni.

Adott egy feladat és adott egy megoldás. A megoldásba mi micsoda?
Vagy akkor mondom úgy, hogy a 2. feladat amit bemásoltam, annak mi a megoldása? Na így már talán könnyebb lesz.
Szerk.: ja és ugye ez a feladat: "Írjon shell scriptet, amely az alábbi fájl bejegyzéseket a megfelelő jogosultságokkal együtt létrehozza az aktuális könyvtáron belül:".
-
FixY67
senior tag
No akkor senki se tud segíteni?

Sürgős lenne, aztán akkor megpróbálok más fórumokba segítséget kérni, ha itt nem kapok választ. Jövő héten Zh és addigra kéne valami.Az a baj, hogy én továbbra sem értem, mit nem értesz... a feladatot nem tudod értelmezni?
-
HUNNIA1920
őstag
Hát mondjuk az kéne, hogy a megoldásban melyik sor mit csinál?
Mert a Zh - ba a feladat mindig más.
Pl.: lehet ez is egy példa:Név: Típus: Jogosultság: Helye:
A D-re mutató szimbolikus link rwxrwxrwx B
B könyvtár rwxr-sr-x .
C állomány (C,D hard link) rw-r----- E
D állomány (C,D hard link) rw-r----- B
E könyvtár rwxr-x--t BNa és itt már gondba vagyok, hogy akkor hogy is van ez?

No akkor senki se tud segíteni?

Sürgős lenne, aztán akkor megpróbálok más fórumokba segítséget kérni, ha itt nem kapok választ. Jövő héten Zh és addigra kéne valami. -
FixY67
senior tag
Ha már ennyire rámentél a külső parancsok eliminálására (nagyon helyesen) akkor azért azt se felejtsd el, hogy a bash kiválóan szét tudja szabdalni a stringet, nem kell hozzá a sed. Az adott példában ha jól látom egyszerűen ident=${i//_*html/} avagy a string végét feltételezve ident=${i%%_*html}.
Ez már nekem új. Ksh-t tanultam valamikor, de már annak a nagy részét is elfelejtettem.

-
FixY67
senior tag
Csak hibás kötekedés, mivel a hard linkek nem egymásra mutatnak, hanem az inode-ra. Persze "pucér" inode-t nem tudsz létrehozni, rögtön kapsz hozzá 1 hard linket induláskor. De a végén C és D tökéletesen egyenértékű, nem tudod megmondani melyik az "igazi". Nem úgy, mint symlink esetén.
Ez igaz, de az inode-ot létre kell hozni valahogy, addig nem tudsz rá hard linket gyártani.

-
Jester01
veterán
Ha már ennyire rámentél a külső parancsok eliminálására (nagyon helyesen) akkor azért azt se felejtsd el, hogy a bash kiválóan szét tudja szabdalni a stringet, nem kell hozzá a sed. Az adott példában ha jól látom egyszerűen ident=${i//_*html/} avagy a string végét feltételezve ident=${i%%_*html}.
-
Jester01
veterán
Tesemértedhogymitnemértek.

Persze, hogy értem, csak hülyén van megfogalmazva, erre próbáltam "finoman" célozni: ha szó szerint veszem a feladatot, akkor C-t és D-t is hardlinkként kell létrehozni úgy, hogy egymásra mutassanak. Az meg kb. tyúk-tojás problémakör. (ez meg tképp szimpla kötekedés részemről.
)Csak hibás kötekedés, mivel a hard linkek nem egymásra mutatnak, hanem az inode-ra. Persze "pucér" inode-t nem tudsz létrehozni, rögtön kapsz hozzá 1 hard linket induláskor. De a végén C és D tökéletesen egyenértékű, nem tudod megmondani melyik az "igazi". Nem úgy, mint symlink esetén.
-
HUNNIA1920
őstag
Hát mondjuk az kéne, hogy a megoldásban melyik sor mit csinál?
Mert a Zh - ba a feladat mindig más.
Pl.: lehet ez is egy példa:Név: Típus: Jogosultság: Helye:
A D-re mutató szimbolikus link rwxrwxrwx B
B könyvtár rwxr-sr-x .
C állomány (C,D hard link) rw-r----- E
D állomány (C,D hard link) rw-r----- B
E könyvtár rwxr-x--t BNa és itt már gondba vagyok, hogy akkor hogy is van ez?

-
FixY67
senior tag
Tesemértedhogymitnemértek.

Persze, hogy értem, csak hülyén van megfogalmazva, erre próbáltam "finoman" célozni: ha szó szerint veszem a feladatot, akkor C-t és D-t is hardlinkként kell létrehozni úgy, hogy egymásra mutassanak. Az meg kb. tyúk-tojás problémakör. (ez meg tképp szimpla kötekedés részemről.
) -
Jester01
veterán
Ha valaki elmondja, mi akar lenni a "(C,D hard link)" szöveg, pláne így, duplázva, akkor a többit el tudom magyarázni.

---
De nem teljesen értem, hogy te mit nem értesz. Felül a feladat, alatta a megoldás, egy többé-kevésbé korrekt shell script formájában. Az egyes parancsok magyarázata kellene?Az akar lenni, hogy a C és a D ugyanarra az inode-ra hard link.
-
FixY67
senior tag
Sziasztok!
Tudna nekem segíteni valaki shell script ügyben?
Iskolába kéne a Zh - hoz, de nem igazán tudom, hogy melyik az eleje meg a hátulja.
Ez lenne a feladat:Írjon shell scriptet, amely az alábbi fájl bejegyzéseket a megfelelő jogosultságokkal
együtt létrehozza az aktuális könyvtáron belül:Név: Típus: Jogosultság: Helye:
A könyvtár rwxr-xr-x .
B könyvtár rwxr-sr-x A
C állomány (C,D hard link) rw-r----- A
D állomány (C,D hard link) rw-r----- B
E B-re mutató szimbolikus link rwxrwxrwx AMegoldás:
mkdir A; chmod 755 A
mkdir A/B; chmod 2755 A/B
echo > A/C; chmod 640 A/C
ln A/C A/B/D
ln -s B A/EEzt valaki el tudná magyarázni, hogy mi hogy van és miért?
Köszönöm előre is!Szerk.: sajnos össze csúszott, de szerintem aki tud segíteni, az érti így is.
Ha valaki elmondja, mi akar lenni a "(C,D hard link)" szöveg, pláne így, duplázva, akkor a többit el tudom magyarázni.

---
De nem teljesen értem, hogy te mit nem értesz. Felül a feladat, alatta a megoldás, egy többé-kevésbé korrekt shell script formájában. Az egyes parancsok magyarázata kellene? -
HUNNIA1920
őstag
Sziasztok!
Tudna nekem segíteni valaki shell script ügyben?
Iskolába kéne a Zh - hoz, de nem igazán tudom, hogy melyik az eleje meg a hátulja.
Ez lenne a feladat:Írjon shell scriptet, amely az alábbi fájl bejegyzéseket a megfelelő jogosultságokkal
együtt létrehozza az aktuális könyvtáron belül:Név: Típus: Jogosultság: Helye:
A könyvtár rwxr-xr-x .
B könyvtár rwxr-sr-x A
C állomány (C,D hard link) rw-r----- A
D állomány (C,D hard link) rw-r----- B
E B-re mutató szimbolikus link rwxrwxrwx AMegoldás:
mkdir A; chmod 755 A
mkdir A/B; chmod 2755 A/B
echo > A/C; chmod 640 A/C
ln A/C A/B/D
ln -s B A/EEzt valaki el tudná magyarázni, hogy mi hogy van és miért?
Köszönöm előre is!Szerk.: sajnos össze csúszott, de szerintem aki tud segíteni, az érti így is.
-
FixY67
senior tag
-
7
addikt
-
FixY67
senior tag
-
FixY67
senior tag
Lehet, hogy mégsem... legalábbis a routeremen külső parancs, akkor meg hóttmind1.
-
FixY67
senior tag
Update: köszönöm a kiindulási alapot, megvagyok az átnevezgetéssel. Magamra specializált paraméterek vannak benne

#!/bin/bash
for i in *html
do
ident=$(ls "$i" | sed -r 's/_.*html//g')
date=$(cat "$i" | grep -E -m1 '(Mon|Tue|Wed|Thu|Fri|Sat|Sun), .* 20[01][567890] at .* (AM|PM)' | cut -d ' ' -f 2-4 | sed -r 's/,//g' | sed -r 's/(at)//g' | sed -r 's/:/./g' | sed -r 's/ /-/g' )
partner=$(cat "$i" | grep -m2 "<" | sed -r 's/.*dorp.*//g' | grep "$lt;.*>" | sed -r 's/<|>//g' | sed -r 's/[@|%]/_/' | sed -r 's/[@|%]/_/g' | sed -r 's/_msn.*//g')
#echo "$partner"_-_"$ident"_-_"$date"
mkdir "$partner"
mv "$i" "$partner"/"$partner"_-_"$ident"_-_"$date".html
doneident=$(ls "$i" | sed -r 's/_.*html//g')
helyett én
ident=$(echo "$i" | sed -r 's/_.*html//g')
-t írnék. Az echo belső parancs, nem indít újabb processzt miatta.A grep-nek közvetlenül is megadhatod a file nevét, nem kell cat-tel egy pipe-ba nyomni a tartalmát.
-
FixY67
senior tag
Update: köszönöm a kiindulási alapot, megvagyok az átnevezgetéssel. Magamra specializált paraméterek vannak benne

#!/bin/bash
for i in *html
do
ident=$(ls "$i" | sed -r 's/_.*html//g')
date=$(cat "$i" | grep -E -m1 '(Mon|Tue|Wed|Thu|Fri|Sat|Sun), .* 20[01][567890] at .* (AM|PM)' | cut -d ' ' -f 2-4 | sed -r 's/,//g' | sed -r 's/(at)//g' | sed -r 's/:/./g' | sed -r 's/ /-/g' )
partner=$(cat "$i" | grep -m2 "<" | sed -r 's/.*dorp.*//g' | grep "$lt;.*>" | sed -r 's/<|>//g' | sed -r 's/[@|%]/_/' | sed -r 's/[@|%]/_/g' | sed -r 's/_msn.*//g')
#echo "$partner"_-_"$ident"_-_"$date"
mkdir "$partner"
mv "$i" "$partner"/"$partner"_-_"$ident"_-_"$date".html
doneEgyébként elrontottam, mert a grep mögé elfelejtettem beírni a $i-t.
-
7
addikt
Update: köszönöm a kiindulási alapot, megvagyok az átnevezgetéssel. Magamra specializált paraméterek vannak benne

#!/bin/bash
for i in *html
do
ident=$(ls "$i" | sed -r 's/_.*html//g')
date=$(cat "$i" | grep -E -m1 '(Mon|Tue|Wed|Thu|Fri|Sat|Sun), .* 20[01][567890] at .* (AM|PM)' | cut -d ' ' -f 2-4 | sed -r 's/,//g' | sed -r 's/(at)//g' | sed -r 's/:/./g' | sed -r 's/ /-/g' )
partner=$(cat "$i" | grep -m2 "<" | sed -r 's/.*dorp.*//g' | grep "$lt;.*>" | sed -r 's/<|>//g' | sed -r 's/[@|%]/_/' | sed -r 's/[@|%]/_/g' | sed -r 's/_msn.*//g')
#echo "$partner"_-_"$ident"_-_"$date"
mkdir "$partner"
mv "$i" "$partner"/"$partner"_-_"$ident"_-_"$date".html
done -
7
addikt
for i in '*filespec*'
do
partner=$(grep -m1 'Chat with' | sed -e '/^.*Chat with //' | cut -d ' ' -f 1)
mv "$i" "$partner_$i"
doneÍgy hajnalok hajnalán, próba nélkül leírva...
(és feltételezve, hogy a chat-ben résztvevők nickjei kizárólag olyan karaktereket tartalmaznak, amik elfogadhatóak egy file nevében és nincs bennük idézőjel)Koszonom, par nap mulva megprobalom

-
Neil Watts
veterán
Mivel régebben bourne shellt, meg ksh-t kezdtem tanulni, majd picit belenéztem a C shellbe és megállapítottam, hogy ezzel jáccon akinek két anyja van, igencsak meglepődtem a bash-t látva.

Viszont kényelmes. Egy bizonyos szintig még szeretni is lehet. De ahhoz meg kellene ismerni alaposabban. Akkor meg már inkább az awk v. zűrösebb esetekben a perl...perl...

MOD: OFF -
FixY67
senior tag
-
bambano
titán
for i in '*filespec*'
do
partner=$(grep -m1 'Chat with' | sed -e '/^.*Chat with //' | cut -d ' ' -f 1)
mv "$i" "$partner_$i"
doneÍgy hajnalok hajnalán, próba nélkül leírva...
(és feltételezve, hogy a chat-ben résztvevők nickjei kizárólag olyan karaktereket tartalmaznak, amik elfogadhatóak egy file nevében és nincs bennük idézőjel)a for i in filespec sorban a sima aposztróf tuttira nem jó.
-
FixY67
senior tag
Akkor en kerek elnezest, ez nekem uj!
Na asszem' most neki a latok valami bash gyorstalpalonak!
Mivel régebben bourne shellt, meg ksh-t kezdtem tanulni, majd picit belenéztem a C shellbe és megállapítottam, hogy ezzel jáccon akinek két anyja van, igencsak meglepődtem a bash-t látva.

Viszont kényelmes. Egy bizonyos szintig még szeretni is lehet. De ahhoz meg kellene ismerni alaposabban. Akkor meg már inkább az awk v. zűrösebb esetekben a perl... -
Neil Watts
veterán
-
FixY67
senior tag
Szia!
Ez inkabb C (legalabb is nagyon ugy nez ki), neki pedig bash-ban kene.

Udv. core2
Ez bash...

-
Neil Watts
veterán
Kb valami ilyesmi kellene neked (az, hogy a while feltetele a read, arra jó, hogy end-of-file (ctrl+D vagy tényleges eof, ha pl egy pipe-ból jön az input) esetén is megszakadjon a ciklus):
function read_line()
{
while read LINE ; do
if [ -z "$LINE" ] ; then
return
fi
echo "--- $LINE ---"
done
}Szia!
Ez inkabb C (legalabb is nagyon ugy nez ki), neki pedig bash-ban kene.

Udv. core2
-
FixY67
senior tag
Sziasztok!
Az utóbbi napokban estem át egy mailmigráláson, aminek során az eddigi masszívan gtalkra használt mailcímemet töröltem, de előtte lementettem HTML formátumba a beszélgetéseimet. Mivel ezt scripttel csináltam, ezért a filenevek nemigen értelmesek.
Amire szükségem lenne, az egy olyan script, amivel a html-ben található szöveg alapján átnevezhetném a beszélgetéseket.
Értsd: A HTML file-ok tartalmazzák a következő sort: "Chat with XY". Szeretném ezt az XY-t kiemelni és hozzácsapni a filenév elejéhez.
Tehát ha eddig az volt a file neve, hogy 1234_54321.html, akkor a script lefuttatása után legyen az, hogy XY_1234_54321.html.Kérdésem, hogy tudnátok-e segíteni legalább abban, hogy hogyan induljak el.
Például fogalmam sincs róla, hogy egyáltalán hogyan tudok tömeges átnevezést végrehajtani, valamint hogy tömeges átnevezésnél hogyan adhatok meg olyan változót, amivel kiegészíthetem a fileneveket.for i in '*filespec*'
do
partner=$(grep -m1 'Chat with' | sed -e '/^.*Chat with //' | cut -d ' ' -f 1)
mv "$i" "$partner_$i"
doneÍgy hajnalok hajnalán, próba nélkül leírva...
(és feltételezve, hogy a chat-ben résztvevők nickjei kizárólag olyan karaktereket tartalmaznak, amik elfogadhatóak egy file nevében és nincs bennük idézőjel) -
7
addikt
Sziasztok!
Az utóbbi napokban estem át egy mailmigráláson, aminek során az eddigi masszívan gtalkra használt mailcímemet töröltem, de előtte lementettem HTML formátumba a beszélgetéseimet. Mivel ezt scripttel csináltam, ezért a filenevek nemigen értelmesek.
Amire szükségem lenne, az egy olyan script, amivel a html-ben található szöveg alapján átnevezhetném a beszélgetéseket.
Értsd: A HTML file-ok tartalmazzák a következő sort: "Chat with XY". Szeretném ezt az XY-t kiemelni és hozzácsapni a filenév elejéhez.
Tehát ha eddig az volt a file neve, hogy 1234_54321.html, akkor a script lefuttatása után legyen az, hogy XY_1234_54321.html.Kérdésem, hogy tudnátok-e segíteni legalább abban, hogy hogyan induljak el.
Például fogalmam sincs róla, hogy egyáltalán hogyan tudok tömeges átnevezést végrehajtani, valamint hogy tömeges átnevezésnél hogyan adhatok meg olyan változót, amivel kiegészíthetem a fileneveket. -
pilsner
aktív tag
végeredményében ugyanígy. egy ciklussal az $1től az $#-1-ig a paramétereket bele egy stringbe. ami megfeleltethető egy változónak is, és így a paraméterek sorszáma sem változik a shift hatására.
kár, hogy a script nem lett tökéletes, de nem ezen múlt -
8nemesis8
veterán
Sajnos gedittel nem láttam, csak az első sorban ugye hibát dobot és ez volt a hiba .../bin/bash^M nem tudja értelmezni!
Közbe újra begépeltem linux alatt így már jónak kell lennie, köszi a segítséget. -
FixY67
senior tag
És te hogy oldottad meg?
Mert én kb. úgy gondoltam, hogy shiftelgetve az aktuális $1-t mindaddig hozzáfűzöd egy változó értékéhez, míg a paraméterek száma nagyobb, mint 1. Ha már csak egy paramétered van, akkor befejezted, kilépsz...
-
pilsner
aktív tag
-
FixY67
senior tag
Felesleges ^M karaktereket látsz a szövegben? Vagy milyen az a "rossz újsor"?
Ha a fenti, akkor a legegyszerűbb megoldás:
vi file.neve:g/{itt nyomsz egy Ctrl-V kombinációt, majd egy Ctrl-M-et}/s///
Aztán elmented. -
8nemesis8
veterán
-
FixY67
senior tag
A shift parancs mond valamit?
(ha nem, akkor man bash /shift
) -
pilsner
aktív tag
Hello!
Tudna nekem segíteni valaki abban, hogyan tudom letárolni egy változóba az összes paramétert ("$*") mínusz az utolsó paramétert ("$#") ? Azaz hogyan távolítom el az előzőleg már letárolt utolsó paramétert az összes paraméterek listájából? Nagyon köszönöm! -
bambano
titán
-
8nemesis8
veterán
Windows alól írtam a shell scriptet puttyon keresztül belépve linux alá, hogyan tudom eltávolítani a rossz újsor kezdő karaktereket, sajnos a dos2unix parancs nem működik.
-
bambano
titán
Sziasztok!
Szeretnék írni egy linuxos shell szkriptet amely kiírja két dátum között eltelt
időt a felhasználó által választott mértékben. Az első paramétere egy kapcsoló
(‐ev, ‐honap, ‐nap, ( , p, p, ‐ora, ‐perc, ‐masodperc), második és harmadik paramétere (YYYY‐MM‐DD alakban) dátumok. Hibás dátum esetén hibát írjon ki. Én erre jutottam:
#!/bin/bashdate2stamp () {
date --utc --date "$1" +%s
}dateDiff (){
case $1 in
-s) sec=1; shift;;
-m) sec=60; shift;;
-h) sec=3600; shift;;
-d) sec=86400; shift;;
*) sec=86400;;
esacdte1=$(date2stamp $1)
dte2=$(date2stamp $2)
diffSec=$((dte2-dte1))if ((diffSec < 0));
then abs=-1; else abs=1;
fi
echo $((diffSec/sec*abs))
}Valamiért nem akar működni. Valaki segítsen! Előre is köszi
a szkriptnek chmod 755 utasítással futtatási jogot kell adni.
a date parancsban javasolt a +%s paramétert aposztrófok közé tenni, hogy a shell ne piszkáljon bele.
-
Stefa0009
csendes tag
Sziasztok!
Szeretnék írni egy linuxos shell szkriptet amely kiírja két dátum között eltelt
időt a felhasználó által választott mértékben. Az első paramétere egy kapcsoló
(‐ev, ‐honap, ‐nap, ( , p, p, ‐ora, ‐perc, ‐masodperc), második és harmadik paramétere (YYYY‐MM‐DD alakban) dátumok. Hibás dátum esetén hibát írjon ki. Én erre jutottam:
#!/bin/bashdate2stamp () {
date --utc --date "$1" +%s
}dateDiff (){
case $1 in
-s) sec=1; shift;;
-m) sec=60; shift;;
-h) sec=3600; shift;;
-d) sec=86400; shift;;
*) sec=86400;;
esacdte1=$(date2stamp $1)
dte2=$(date2stamp $2)
diffSec=$((dte2-dte1))if ((diffSec < 0));
then abs=-1; else abs=1;
fi
echo $((diffSec/sec*abs))
}Valamiért nem akar működni. Valaki segítsen! Előre is köszi
Azt írja ki, hogy hozzáférés megtagadva
-
Stefa0009
csendes tag
Sziasztok!
Szeretnék írni egy linuxos shell szkriptet amely kiírja két dátum között eltelt
időt a felhasználó által választott mértékben. Az első paramétere egy kapcsoló
(‐ev, ‐honap, ‐nap, ( , p, p, ‐ora, ‐perc, ‐masodperc), második és harmadik paramétere (YYYY‐MM‐DD alakban) dátumok. Hibás dátum esetén hibát írjon ki. Én erre jutottam:
#!/bin/bashdate2stamp () {
date --utc --date "$1" +%s
}dateDiff (){
case $1 in
-s) sec=1; shift;;
-m) sec=60; shift;;
-h) sec=3600; shift;;
-d) sec=86400; shift;;
*) sec=86400;;
esacdte1=$(date2stamp $1)
dte2=$(date2stamp $2)
diffSec=$((dte2-dte1))if ((diffSec < 0));
then abs=-1; else abs=1;
fi
echo $((diffSec/sec*abs))
}Valamiért nem akar működni. Valaki segítsen! Előre is köszi
-
DonVinetoo
csendes tag
Igazadvan bocsi!
Tulajdonképpen nekem az is elég ha csak az ls -l parancsbol a 6. 7. 8. oszlopot írja ki
próbálkoztam ezzel a parancsal cut -d " " -f1,[oszlopszám] csak azzal azt értem el hogy akármit írok oszlopszámnak mindig az első oszlopot írja ki! -
FixY67
senior tag
Sziasztok!
Kéne nekem egy kis segítség egy script megírásához aminek ezt kell csinálnia:
Jelenítse meg a LISTA‐ban felsorolt könyvtárakban a
legfeljebb IDO perce módosított állományok
módosítási idejét és a nevét.Köszi a segítséget!
Milyen segítség kellene? Mert a kérdésed kb. arra utal, hogy írja meg valaki helyetted...
Ajánlom figyelmedbe pl. a 'for' parancsot, a "find" parancs -mtime, ill. -ctime (?) kapcsolójának tanulmányozását, valamint az 'ls' kapcsolóit.
-
DonVinetoo
csendes tag
Sziasztok!
Kéne nekem egy kis segítség egy script megírásához aminek ezt kell csinálnia:
Jelenítse meg a LISTA‐ban felsorolt könyvtárakban a
legfeljebb IDO perce módosított állományok
módosítási idejét és a nevét.Köszi a segítséget!
-
8nemesis8
veterán
Igen, ahhoz viszonyítva oldottam már meg nagyrészt. Már csak egy rendezést kell százalék alapján.
Van egy olyan fájlom, hogy idle_time login_time név
Ebből kellene egy százalékos érték alapján sorba rendeznem!
awkra gondoltam idle/login*100 és név hozzárendelve, azonban egy sorban ezt nem tudom megtenni. Hogyan lehetne?Nah sikerült megoldani , bocs a felesleges postokért.

-
8nemesis8
veterán
Igen, ahhoz viszonyítva oldottam már meg nagyrészt. Már csak egy rendezést kell százalék alapján.
Van egy olyan fájlom, hogy idle_time login_time név
Ebből kellene egy százalékos érték alapján sorba rendeznem!
awkra gondoltam idle/login*100 és név hozzárendelve, azonban egy sorban ezt nem tudom megtenni. Hogyan lehetne? -
bambano
titán
Sziasztok!
Szeretnék írni egy linuxos shell szkriptet amely kiírja két dátum között eltelt
időt a felhasználó által választott mértékben. Az első paramétere egy kapcsoló
(‐ev, ‐honap, ‐nap, ( , p, p, ‐ora, ‐perc, ‐masodperc), második és harmadik paramétere (YYYY‐MM‐DD alakban) dátumok. Hibás dátum esetén hibát írjon ki. Szökőévek nem számítanak. Úgy gondoltam hogy az első paramétert valahogy így oldanám meg:
case $1 in
ev) ;;
honap) ;;
nap) ;;
ora) ;;
perc) ;;
masodperc) ;;
esac
Tudna valaki ebben segíteni?
Előre is köszidate parancs manualja hasznos lehet...
-
bambano
titán
Sziasztok!
Hogyan tudnám megvalósítani, hogy a bejelentkezett felhasználók közül listázzam ki azokat akik a bejelentkezés óta eltelt idő 50%-ában idle állapotban vannak, százalék szerint csökkenő sorrendben!?
Úgy próbálkoztam, hogy a who parancsra adott válaszból awk printtel kiszedem az oszlopokat szétbontom kettőspontnál és így vissza tudok számolni másodperceket. Idle ugye lekérhető w vagy fingernél. Viszont szerintem finger használata hasznosabb lehet, ott nevekkel azonosítóval tudom a végén listázni esetleg.
Előre is köszi a segítséget.szerintem sehogy. tudtommal a rendszer nem tárolja az összes idle time-ot, csak az utolsó interakció óta eltelt idle time-ot.
-
Stefa0009
csendes tag
Sziasztok!
Szeretnék írni egy linuxos shell szkriptet amely kiírja két dátum között eltelt
időt a felhasználó által választott mértékben. Az első paramétere egy kapcsoló
(‐ev, ‐honap, ‐nap, ( , p, p, ‐ora, ‐perc, ‐masodperc), második és harmadik paramétere (YYYY‐MM‐DD alakban) dátumok. Hibás dátum esetén hibát írjon ki. Szökőévek nem számítanak. Úgy gondoltam hogy az első paramétert valahogy így oldanám meg:
case $1 in
ev) ;;
honap) ;;
nap) ;;
ora) ;;
perc) ;;
masodperc) ;;
esac
Tudna valaki ebben segíteni?
Előre is köszi -
8nemesis8
veterán
Sziasztok!
Hogyan tudnám megvalósítani, hogy a bejelentkezett felhasználók közül listázzam ki azokat akik a bejelentkezés óta eltelt idő 50%-ában idle állapotban vannak, százalék szerint csökkenő sorrendben!?
Úgy próbálkoztam, hogy a who parancsra adott válaszból awk printtel kiszedem az oszlopokat szétbontom kettőspontnál és így vissza tudok számolni másodperceket. Idle ugye lekérhető w vagy fingernél. Viszont szerintem finger használata hasznosabb lehet, ott nevekkel azonosítóval tudom a végén listázni esetleg.
Előre is köszi a segítséget.Nem megoldást várok, csak egy kis segítséget amin el tudok indulni esetleg.

-
8nemesis8
veterán
Sziasztok!
Hogyan tudnám megvalósítani, hogy a bejelentkezett felhasználók közül listázzam ki azokat akik a bejelentkezés óta eltelt idő 50%-ában idle állapotban vannak, százalék szerint csökkenő sorrendben!?
Úgy próbálkoztam, hogy a who parancsra adott válaszból awk printtel kiszedem az oszlopokat szétbontom kettőspontnál és így vissza tudok számolni másodperceket. Idle ugye lekérhető w vagy fingernél. Viszont szerintem finger használata hasznosabb lehet, ott nevekkel azonosítóval tudom a végén listázni esetleg.
Előre is köszi a segítséget. -
Votyesz13
tag
#! /bin/bash
kilep=0;
while([ $kilep -eq 0 ]);
do
echo -n "Kerem a nevet: "
read VAL1;
echo -n "Kerem a hozzatartozo telefonszamot: "
read VAL2;
if [ -z `echo $VAL1` ];
then kilep=1;
fi
if [ -z `echo $VAL2` ];
then kilep=1;
fi
if [ $kilep=0 ];
then
VALSEGED=`grep $VAL1 phone.txt`;
if [ -z `echo $VALSEGED` ];
then
echo "$VAL1:$VAL2" >> phone.txt;
elseecho "Csere(1) vagy nem csere(0)? ";
read VALASZ;
if [ $VALASZ -eq 1 ];
then
grep -v "$VAL1" phone.txt > phone2.txt;
cat phone2.txt > phone.txt
echo "$VAL1:$VAL2" >> phone.txt;
fi
fi
fi
done
rm phone2.txtexit 0;
Na ez egy verzió

hát az lenne a program dolga hogy folyamatosan bekéri a név telefonszám párosokat mintha egy telefonkönyv lenne.Beírja őket egy txt-be folyamatosan.Ha egyezést talál akkor megkérdezi hogy kicserélje-e őket vagy eldobja e az új sort.A program akkor áll le ha üres paramétert kap vagy a névnek vagy a telefonszámnak.Ennyi röviden
-
bambano
titán
Nem név és szám lenne a neve hanem az a név pl(Kiss Pista) és a telefonszáma(0671281082) amit bekérek folyamatosan.És ezért kell bele a az if hogy vizsgálja meg hogy ha van már olyan nevű a txt-be amibe beleírunk folyamatosan akkor kérdezzen vissza hogy mi legyen azzal a név szám párossal.Felülírjuk vagy cseréljük arra ami már a txt-be van.Elvileg erről lenne szó
Csak gyakorlatba nem akar működni
na ennek fuss neki mégegyszer

-
Votyesz13
tag
de ha a ciklus feltételébe tartozó változók értéke nem változik a ciklusmagon belül, akkor ez tuttira végtelen ciklus lesz.
nem kell aggódni, a linux azt is végrehajtja 5 másodperc alatt
megjegyzés: csak nekem evidens, hogyha nevet akarok tárolni egy változóban, akkor annak az lesz a neve, hogy nev, meg telefonszam?
Nem név és szám lenne a neve hanem az a név pl(Kiss Pista) és a telefonszáma(0671281082) amit bekérek folyamatosan.És ezért kell bele a az if hogy vizsgálja meg hogy ha van már olyan nevű a txt-be amibe beleírunk folyamatosan akkor kérdezzen vissza hogy mi legyen azzal a név szám párossal.Felülírjuk vagy cseréljük arra ami már a txt-be van.Elvileg erről lenne szó
Csak gyakorlatba nem akar működni
-
FixY67
senior tag
-
FixY67
senior tag
-
bambano
titán
miért van nekem olyan érzésem, hogy itten mostan iskolai házifeladatokat oldunk meg?
-
bambano
titán
A whileal azt szeretném elérni hogy végtelen ciklusba addig olvassa be a név szám párokat amíg vagy a szám vagy a név egy üres sort nem kap.De akkor először be kell kérnem a páraokat a while előtt vagy majd csak a whileon belül és akkor utána adom meg a while feltételének?Mert nem akar folyamatosan bekérni adatot hanem csak egy nevet és számot kér be és leáll...:S
de ha a ciklus feltételébe tartozó változók értéke nem változik a ciklusmagon belül, akkor ez tuttira végtelen ciklus lesz.
nem kell aggódni, a linux azt is végrehajtja 5 másodperc alatt
megjegyzés: csak nekem evidens, hogyha nevet akarok tárolni egy változóban, akkor annak az lesz a neve, hogy nev, meg telefonszam?
-
Stefa0009
csendes tag
Sziasztok!
Szeretnék írni egy linuxos shell szkriptet amely kiírja két dátum között eltelt
időt a felhasználó által választott mértékben. Az első paramétere egy kapcsoló
(‐ev, ‐honap, ‐nap, ( , p, p, ‐ora, ‐perc, ‐masodperc), második és harmadik paramétere (YYYY‐MM‐DD alakban) dátumok. Hibás dátum esetén hibát írjon ki. Tudna valaki ebben segíteni?
Előre is köszi -
Votyesz13
tag
A while-nak több baja is van.
Nem kerek zárójelek kellenek, hanem egy test parancs:
while test "$a" != "$b" ; do echo a; echo b; echo c; doneIlletve a szokásos forma:
while [ "$a" != "$b" ]; do echo a; echo b; echo c; doneA másik, hogy az ilyen jellegű hasonlításoknál a változót nem árt idézőjelek (") közé tenni (hangsúlyozottan nem aposztróf (') !!! ), hogy ha üres a változód, akkor se legyen gond vele.
A whileal azt szeretném elérni hogy végtelen ciklusba addig olvassa be a név szám párokat amíg vagy a szám vagy a név egy üres sort nem kap.De akkor először be kell kérnem a páraokat a while előtt vagy majd csak a whileon belül és akkor utána adom meg a while feltételének?Mert nem akar folyamatosan bekérni adatot hanem csak egy nevet és számot kér be és leáll...:S
-
bambano
titán
A while-nak több baja is van.
Nem kerek zárójelek kellenek, hanem egy test parancs:
while test "$a" != "$b" ; do echo a; echo b; echo c; doneIlletve a szokásos forma:
while [ "$a" != "$b" ]; do echo a; echo b; echo c; doneA másik, hogy az ilyen jellegű hasonlításoknál a változót nem árt idézőjelek (") közé tenni (hangsúlyozottan nem aposztróf (') !!! ), hogy ha üres a változód, akkor se legyen gond vele.
ezért szoktak a unixosok elétenni valamit:
[ x"$a" != x"$b" ]
-
FixY67
senior tag
#! /bin/bash
echo -n "Kerem a nevet:"
read VAL1
echo -n "Kerem a hozzatartozo telefonszamot:"
read VAL2while($VAL1!="" || $VAL2!="")
if [ -z `grep "$VAL1 : $VAL2" phone.txt` ]
then
echo "$VAL1 : $VAL2" >> phone.txt;
else
VALSEGED='grep $VAL1';
VALTOZO="$VAL1 : $VAL2";
echo "Csere(1) vagy nem csere(0)? ";
read VALTOZO2;
if test VALTOZO2 = 1;
then
sed 's/"$VALTOZO"/"$VALSEGED/' phone.txt
fi
fi
doexit 0;
Na eddig jutottam.De a While vmiért nemjó:SNem olvassa be folyamatosan a nev szam parosokat.Valaki help:S
A while-nak több baja is van.
Nem kerek zárójelek kellenek, hanem egy test parancs:
while test "$a" != "$b" ; do echo a; echo b; echo c; doneIlletve a szokásos forma:
while [ "$a" != "$b" ]; do echo a; echo b; echo c; doneA másik, hogy az ilyen jellegű hasonlításoknál a változót nem árt idézőjelek (") közé tenni (hangsúlyozottan nem aposztróf (') !!! ), hogy ha üres a változód, akkor se legyen gond vele.
-
bambano
titán
#! /bin/bash
echo -n "Kerem a nevet:"
read VAL1
echo -n "Kerem a hozzatartozo telefonszamot:"
read VAL2while($VAL1!="" || $VAL2!="")
if [ -z `grep "$VAL1 : $VAL2" phone.txt` ]
then
echo "$VAL1 : $VAL2" >> phone.txt;
else
VALSEGED='grep $VAL1';
VALTOZO="$VAL1 : $VAL2";
echo "Csere(1) vagy nem csere(0)? ";
read VALTOZO2;
if test VALTOZO2 = 1;
then
sed 's/"$VALTOZO"/"$VALSEGED/' phone.txt
fi
fi
doexit 0;
Na eddig jutottam.De a While vmiért nemjó:SNem olvassa be folyamatosan a nev szam parosokat.Valaki help:S
sed 's/"$VALTOZO"/"$VALSEGED/' phone.txt
ha a sed programja aposztróffal kezdődik, akkor mindegy, hogy van-e belül idézőjel.
ha cseréltetni akarod, akkor idézőjelek közé tedd.
sed -e "s/$VALTOZO/$VALSEGED/" phone.txtés már csak azt intézd el, hogy egyikben se legyen / jel.
Új hozzászólás Aktív témák
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Telefon felvásárlás!! iPhone 12 Mini/iPhone 12/iPhone 12 Pro/iPhone 12 Pro Max
- Samsung Galaxy S20 Ultra / 12/128GB / Kártyafüggetlen / 12Hó Garancia
- Motorola Edge 40 / 8/256GB / Kártyafüggetlen / 12Hó Garancia
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
- BESZÁMÍTÁS! ASRock B450M R5 2600X 16GB DDR4 512GB SSD GTX 1660 Super 6GB Rampage SHIVA DeepCool 400W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

















