Új hozzászólás Aktív témák
-
Votyesz13
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
-
Votyesz13
tag
Sziasztok
Olyan kérdésem van hogy ez a kis program nem akarja kicserélni a sed paranccsal a két változóba mentett sort.Mi lehet a baja?És esetleg hogy lehet megoldani másképp?Előre is köszi.
Üdv bolvar
-
Votyesz13
tag
Na vagyok
Szóval úgy kellene megcsinálni ahogy már írtam is hogy külön kérje be a nevet és a telefonszámot de egy sorban tárolja hogy ha majd talál egyezést a névben akkor ki tudja cserélni azt a sort.Így csak a neves változót kell vizsgálni.De ezt ebbe a whileba hogy írom bele?:S
-
dabadab
titán
válasz
Votyesz13 #492 üzenetére
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
} -
Votyesz13
tag
Hát a feladat szerint úgy lenne jobb ha külön olvasnánk a nevet és a számot mert utána csak a nevet kell nézni az egyezésnél viszont ha cserélni akarjuk akkor az egész sort tehát a nevet és számot is cserélni kell...:S
Elvileg végtelen for ciklust írsz és ha üres sort kapsz akkor kilépsz return 0-al.Valahogy így kellene a for-t megoldani:S
-
Votyesz13
tag
Valaki nem tudna segíteni nekem abban hogy a read-el interaktívan olvassak be addig amíg egy üres sor-t nem kap a script?Egy for ciklusba kellene berakni?Vagy hogyan?:S
-
Votyesz13
tag
Hát a problémám csak bonyolultabb lett mivel ha readdel olvasom be a valtozot akkor nem tudom leellenőrizni hogy vannak e azonos nevűek.Így gondolom külön változóba kellene szedni a nevet és a telefonszámot...Valakinek vmi elgondolás?
-
Votyesz13
tag
És így akkor a for ciklus sem jó mert úgy csak 3 argumentumon ment végig....:S
-
bambano
titán
-
FixY67
senior tag
-
-
Votyesz13
tag
Bocsi de elég kezdő vagyok és a feladat sem teljesen egyértelmű
Így eddig jutottam.De van még 6 nap a leadásig
-
-
Votyesz13
tag
Sziasztok
Egy feladathoz kérnék segítséget.Ez lenne a feladat:
A program interaktívan olvasson be név telefonszám
párosokat,amíg a felhasználó nem dönt úgy, hogy nem visz fel több
adatot.A végét az üres sor jelziHa a bevitel során két ugyanolyan nevű személlyel
találkozik a program, írjon ki értesítést a hibáról és
kérdezze meg a felhasználót, hogy felülírja‐e a régit vagy
dobja‐e el az új számot.Ha elkészült a névjegyzék, akkor azt írja ki a program egy
phone.txt nevű állományba az aktuális könyvtárba.Alapból egy ilyen errorral indít:error: Class names, 'elso.sh', are only accepted if annotation processing is explicitly requested
1 errorEzt a két verziót sikerül eddig összedobni:
1)
#! /bin/bashfor(i=1;i<= $# ; i++)
do
if [ -z `grep "$1 $2" phone.txt` ]
then
echo -n $1 >> phone.txt;
echo -n " " >> phone.txt;
if test i%3 -eq 0;
then
echo >> phone.txt;
fi
shift;
else
echo "Csere(1) vagy nem csere(0)? ";
read VALTOZO;
if test $VALTOZO -eq 1;
then
sed 's/`grep "$1 $2*"`/"$1 $2 $3"/' phone.txt
fi
fi
done2)
#! /bin/bash
for(i=1;i<= expr $#/3 ; i++)
do
if [ -z `grep "$1 $2" phone.txt` ]then
echo "$1 $2 $3" >> phone.txt;shift;
shift;
shift;
else
echo "Csere(1) vagy nem csere(0)? ";
read VALTOZO;
if test $VALTOZO -eq 1;
then
sed 's/`grep "$1 $2 $3"`/"$1 $2 $3"/' phone.txt
fi
fi
doneElőre is köszi a segítséget.
Üdv bolvar
-
FixY67
senior tag
válasz
szunyog199 #462 üzenetére
Jobbat nem nagyon találsz... Nomeg nem mind1, milyen shell...
-
bambano
titán
válasz
szunyog199 #460 üzenetére
man bash.
-
szunyog199
tag
Hali. Szükségem lenne egy Shell script könnyen tanulható jegyzetre, amiben levannak írva a parancsok és elmagyarázza hogy mégis mi mire való. Már keresgéltem de sehol sem találtam hasznosat. Köszönöm.
-
sonar
addikt
Sziasztok,
Egy kis segítség kellene. Van egy könyvtáram ahová gyűlik a sok sok adat. És a 10 napnál régebbi könyvtárakat move-olnom (vagy copy és aztán del) kéne egy másik helyre.
Túrtam a netet, de valahogy a jó megoldást nem találtam meg.
A törlést már megtaláltam, de vhogy ezt nem sikerült copyzósra átalakítanom.
find /dfcxact/mtsn/. -ctime +10 -print|xargs rm -fr -
nermal7
csendes tag
Azt már elgondoltam, hogy ugye paraméterként megadok egy fájlt, amiből soronként beolvasok, majd az egyes beolvasásokat más-más fájlba küldöm, attól függően, hogy páros-e, vagy nem...
Ez így helyes? Viszont, hogy hogyan nézne ez így ki, arról fogalmam sincs..Köszi szépen
-
nermal7
csendes tag
Sziasztok!
Remélem, jó helyre jövök a kérdésemmel..
Szóval, a problémám az lenne, hogy Shellscriptben írnom kell egy scriptet, ami egy paraméterként adott fájlt szétválogat páros, és páratlan sorokra, és ezeket új fájlokban helyezi el.
Remélem, tudtok segíteni, köszi szépen!
Nermal -
bodri29
csendes tag
Sziasztok!
Segítségre lenne szükségem a következőhöz:
Írnom kell egy scriptet, ami a paraméterként kapott szöveget függőlegesen írja ki.
Kérlek, segítsetek, fogalmam sincs, hogyan kéne megcsinálni...
Köszi szépen
Szerk: Az jutott eszembe, hogy karakterenként lehetne beolvasni a paramétert, és azokat egyesével új sorba helyezni... Ez jó? Ha igen, ez hogyan néz ki?
-
doc
nagyúr
-
ivivan
tag
Sziasztok
Akárhogy keresgélek, nem találok olyan parancsot, ami egyszerűen visszaadná egy adott domain IP címét (mondjuk ha a example.com címét szeretném megtudni, akkor kiírná, hogy "192.0.32.10")
Valami ötlet?
-
S.Feri
őstag
Egy játékbeli vásárlást végrehajtó script írására keresek vállalkozó szellemű egyént!
Részletek privátban!
-
ivivan
tag
"az egymasba agyazas valoban nehezkes backtick-kel, de az mar eleve csunya (marmint nem a backtick, az jooo
)"
Hát nem értek egyet. Én szeretem az egymásba ágyazást és $(...) módszerrel nagyon szépen és látványosan meg is lehet oldani. (vajon ez szabványos vagy bash specifikus? Életemben nem használtam még más shell-t :-) )
És tényleg át akarnak állni dash-ra? Az miért lesz jobb? Egyáltalán miben lesz más?
-
ngabor2
nagyúr
fiatalok, ne ezt a topikot flameljétek tele debian-flame-mel. sőt, uinkább egyiket se. thx.
-
doc
nagyúr
egyelőre a debian az a linux, amiből legtöbbet lehet profitálni, ha át kell ülni nagyobb gépre.
mire gondolsz? en pont azt latom benne, hogy mindenre van sajat, debian-only megoldasa, vagyis az "ismerem a linuxot" es az "ismerem a debiant" kozel sem ugyanaz, a kereskedelmi unixoktol meg meg messzebb all -
bambano
titán
Minden bash verziónál volt ígéret arra, hogyha sh-ként indítod, szabvány shellként fog futni. De vajon betartották-e az ígéretet?
#418: egyelőre a debian az a linux, amiből legtöbbet lehet profitálni, ha át kell ülni nagyobb gépre. Egyedül ezt a betonfejű gpl dolgot nem komálom, a többi része szerintem jobb, mint más linuxoké.
-
dabadab
titán
"ha a script sima sh-val fut, akkor futnia kell azzal is, amire a /bin/sh mutat, barmi is legyen az"
Viszont ez nem kommutativ relacio, vagyis ha nalad a /bin/sh fedonev alatt futo bashon fut, az nem jelenti azt, hogy barmilyen sh--kompatibilis shellen is futni fog. (Mondjuk ugy remlik, hogy konkretan a bash ujabb verzio figyelnek erre, es ha /bin/sh neven hivja meg az ember, akkor az extra bashes funkciokat kikapcsolja - de erre azert nem epitenek.)
-
doc
nagyúr
viszont pont azert szokas /bin/sh-t hasznalni, mert az az 'sh-szintig' kompatibilis, tehat ha a script sima sh-val fut, akkor futnia kell azzal is, amire a /bin/sh mutat, barmi is legyen az
mondju a debiannak rogeszmeje mindig mindent mashogy csinalni mint mindenki mas :-/az egymasba agyazas valoban nehezkes backtick-kel, de az mar eleve csunya (marmint nem a backtick, az jooo
)
-
bambano
titán
Nem azzal van a gond, hogy megadod, melyik shellel kell futtatni, hanem azzal, hogy valójában nem adod meg.
Ma már egy unixon soha nem tudhatod, hogy milyen shell van a szabvány sh alá dugva és az mennyire kompatibilis. Ezért szerintem jobb megoldás, ha konkrétan megmondod, hogy melyik shellt akarod. Pl. egy átlag debianon bash van az sh alatt, viszont most akarnak áttérni dash-ra. Az ördögnek pedig árkok vannak a szeme alatt (mert nem alszik
).
A fordított aposztróffal meg nem az a bajom, hogy obsolote, hanem az, hogy nehéz egymásba ágyazni
-
bambano
titán
Vannak dolgok, amik most még csak stilisztikai hibának tűnnek, később meg baj lehet belőle, ezért néha nem árt megszokni, hogy egyes, szintaktikusan helyes dolgot mégsem használ az ember.
Én pl. nem szeretem a fordított aposztrófot, a /bin/sh-t az első sorban, és ezt. Meg még lehet, hogy van más is, ami nem kedvenc
-
ivivan
tag
Ez mondjuk logikus lenne, de nekem legfeljebb az utolsó elem lehet egy pager (én a less-t használom) az első aligha (hacsak nem hagyom ott lustaságból a "cat filename" helyett a "less filename"-et)
És itt sem az egyel kevesebb fork miatt lenne kevesebb az erőforrás igény. -
ngabor2
nagyúr
köszi mindenkinek, ez lett a megoldás:
cut -d \] -f2 file.txt | sort | uniq -c | sort -nr
néha nem árt a man-okat megnézni, mert kiderül, hogy egy kínszenvedve összetákolt szkript egy kapcsolóval helyettesíthető
-
-
ngabor2
nagyúr
van egy lista, amiben mindössze néhány féle szó van, de azok többször. ezt kellene megszámolni, hogy ki hányszor, és sorba állítani őket.
megszámolni én is meg tudom (grep szó file | wc -l), csak azt nem tudom hirtelen, hogy hogyan lehet megcsinálni, hogy maga a szkript keressen rá az egyes szavakra (sort | uniq ad egy listát).
for i in $(sort lista.txt | uniq) do
ez valszeg benne lesz (ciklust sose bírtam helyesen írni...)
grep $i lista.txt | wc -l
ez fogja adni a számot... csak ezt is valami változóba, vagy egyből egy file-ba/kimenetre kellene írni, a $i elé.
erre kérnék valami kultúrmegoldást.
-
Ansatsu
csendes tag
Segitségre elnne szükségem sürgős !
Készítsen shell scriptet, mely egytől a paraméterként megadott pozitív egész számig elszámol egyesével, úgy, hogy minden sorban megjelenít egy egyesével növekvő számsorozatot, addig, ahányadik számnál tart a számlálás. Például '3' paraméter esetén a kimeneten az első sor: '1', a második sor '12', a harmadik sor pedig '123' lesz!vki meg tudná nkm csinálni?
Új hozzászólás Aktív témák
- World of Tanks - MMO
- Kerékpárosok, bringások ide!
- Autós topik
- Íme az új Android Auto!
- Samsung Galaxy Watch7 - kötelező kör
- Emulátorok
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Mielőbb díjat rakatnának a görögök az olcsó csomagokra az EU-ban
- EA Sports WRC '23
- Kevesebb dolgozó kell az Amazonnak, AI veszi át a rutinfeladatokat
- További aktív témák...
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most kedvező áron!
- Honor Magic 7 Pro - Fekete - Új kipróbált készülék! Karcmentes gyárilag független! 512GB Memória!
- AKCIÓ! Microsoft XBOX Series X 1TB SSD fekete játékkonzol garanciával hibátlan működéssel
- BESZÁMÍTÁS! MSI B450M R5 5500 32GB DDR4 512GB SSD RTX 3060 12GB Rampage SHIVA Chieftec 600W
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- Apple iPhone 14 Pro Max / 256 GB / 88% akkumulátor / 1év Garanciával / Gyári Független
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest