Új hozzászólás Aktív témák
-
dabadab
titán
válasz
CPT.Pirk #871 üzenetére
A /proc/bus/usb/ konyvtarban ott vannak az USB eszkozoket reprezentalo file-okat, azokat tudod bizergalni (megfelelo jogosultsaggal). Tisztan bashbol mondjuk a logaritmus nem fog menni, mar csak azert sem, mert a bash csak egesz szamokkal tud szamolni, szoval ahhoz kenytelen leszel kulso programot hivni (pl. ott a dc, a remek forditott lengyel jelolesevel).
-
dabadab
titán
Ugy, hogy inkabb megis elsejen futtatnam
Egyebkent meg szerintem kozvetlenul sehogy sem lehet maganak a cronnak elmagyarazni, hogy az utolso napot szeretned, ezert kenytelen vagy trukkozni:
0 0 28-31 * * [ "$(/bin/date +%d -d tomorrow)" = "01" ] && /your/script.sh
(as seen on Google)
-
dabadab
titán
Ha mar egyszer ugyis itt vagyok
for i in `find .` ; do blablabla ; done
Ez egeszen addig mukodik, amig a find altal visszaadott utvonalakban nincs szokoz (vagy tab vagy newline, pontosabban az $IFS valamelyik tagja). Ha van, akkor meghal a dolog. Igazan korrekt megoldast nem tudok mondani, van egyreszt ugye a find . -exec blabla {} \;, de ez csak akkor mukodik, ha a blabla vmi vegrehajthato file, shell functionoket viszont igy nem lehet meghivni (legalabbis kozvetlenul nem es nem tudok mondani semmi normalis trukkot ennek a megkerulesere).
Aztan el lehet sutni azt is, hogy find . | ( while read LINE ; do blabla "$LINE" ; done ), ez nagyreszt mukodik, kiveve, ha konkretan newline van a filenevben (ami mondjuk tenyleg nem gyakori jelenseg, de elofordulat - foleg, ha valaki direkt ki akarja hasznalni a scriptnek ezt a gyengeseget). -
dabadab
titán
"a 'pwd' kimenetehez hozza kell fuzni a filenevet es kesz
"
Egyreszt a filenev tulajdonkeppen lehet abszolut eleresi ut is, akkor dol a mutatvany (persze, egy egyszeru iffel kezelheto a helyzet, de az mar macera
), masreszt meg a realpath a kanonikus eleresi utat adja vissza, ami symlinkeknel lehet hasznos, pl:
db@cucumalac:~$ ls /home/db/x/../lib
mldonkey/ mythtv/
db@cucumalac:~$ ls /home/db/lib
ls: cannot access /home/db/lib: No such file or directory -
dabadab
titán
Felhívnám a kedves újoncok figyelmét, hogy ez továbbra sem az "Írd meg helyettem a házifeladatomat" topik
Ha valahol elakadtok, nyugodtan kérjetek segítséget, de arra várni, hogy valaki megírja helyettetek, nem nagyon érdemes.
-
dabadab
titán
Azert nem talalod, mert az nem tudja: a mogrify ugy mukodik, hogy az eredeti file-t irja felul.
Ket dolgot tehetsz: mogrify helyett a convertet hasznalod, aminek meg lehet adni a kimeneti file nevet (es akkor az eredetin tul lesz egy uj file-od is) vagy pedig egy mv paranccsal magad nevezed at a file-okat. -
-
dabadab
titán
sed 's/^.*\.\([^\.]*\)$/\1/'
Ez fogja a komplett sort (a ^ a sor eleje, a $ meg a sor vége), megkeresi benne a legutolsó olyan részt, ami egy pont után jön és nincs benne pont, és a cserével a komplett sort lecseréli erre a kis részre (a pontokat escape-elni kell, mivel az alapban joker karakter (ahogy az a legelső előfordulásakor látható is) meg a sima zárójeleket is, mert azokat alapból sima karakternek veszi a sed, a szögleteseket viszont nem, mert azok alapból kontrollkarakterek).
-
dabadab
titán
"nekem sima && elválasztóval nem ment a dolog."
Azert nem, mert a masodik parancsot csak akkor hajtja vegre, ha az elso futasa befejezodott (es nullat adott vissza), szoval ez igy tenyleg nem fog menni, mert az ssh addig fut, amig el a tunnel. Igazan gyors megoldast nem tudok ra javasolni, a maceras az lenne, hogy eloszor inditsd el a tunnelt a hatterben, vard meg, amig lesz valami (kiepul a tunnel vagy hiba miatt kilep az ssh) es utana inditsd el a vnc-t.
Egyebkent tunnelezeshez javaslom az autossh-t, ugyanis az ssh kapcsolatok meg szoktak halni. Fogalmam sincs, hogy miert, de elobb-utobb lehalnak.szerk: hoppa, a -f kimaradt nalam, akkor vissza az egesz
-
dabadab
titán
"& 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
-
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
} -
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.)
-
dabadab
titán
Nem teljesen. A bash az eredeti sh tovabbfejlesztett valtozata, sokkal tobb feature-rel. Eleg sok modern rendszeren a /bin/sh igazabol link a bashra, viszont erre vonatkozolag semmi garancia nincs, igy ha parancsvegrehajtonak az sh-t jeloli meg az ember, akkor nem illik bash feature-oket hasznalni.
A sed meg, roviden elmagyarazva, egy stream editorVagyis arra jo, hogy ha van egy streamed, akkor azon, a sajat scriptnyelven megadott szerkeszteseket vegre tud hajtani - a gyakorlatban az esetek nagy reszeben search'n'replace feladatokra hasznaljak, de ennel sokkal tobbet tud.
-
dabadab
titán
#!/bin/sh
tac ''$@''
BocsMondjuk nem irtad, hogy pontosan mivel is kellene (lehet, hogy siman builtinekkel is ossze lehetne hozni), de itt van pl egy sed-es megfejtes:
#!/bin/sh
for FILE in ''$@'' ; do
if [ -f ''$FILE'' ] ; then
sed '1!G;h;$!d' ''$FILE''
else
echo ''$FILE nem sima file (hanem valami mas vagy nem is letezik)'' >/dev/stderr
fi
done
[Szerkesztve] -
-
dabadab
titán
Konkretan hol akadtal el?
Egyreszt megfelelo jogosultsaggal kell rendelkezned azzal, hogy tudd irni ezt a file-t (alapbol csak a root szokta ezt tudni), utana meg fogod barmelyik kedvenc (unixos) szovegszerkesztodet, es azzal beleirod. Ha csak vi van, es nem boldogulsz vele, akkor szolj -
dabadab
titán
Akkor koltozzunk at ide a linuxos topikbol...
Új hozzászólás Aktív témák
- ROBUX ÁRON ALUL - VÁSÁROLJ ROBLOX ROBUXOT MÉG MA, ELKÉPESZTŐ KEDVEZMÉNNYEL (Bármilyen platformra)
- Gyermek PC játékok
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Kaspersky, McAfee, Norton, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Eladó Steam kulcsok kedvező áron!
- Csere-Beszámítás!AMD Asztali számítógép PC Játékra! R5 5600/ RX 6700XT 12GB / 16GB DDR4 / 500GB SSD
- AKCIÓ! Microsoft XBOX Series S 512GB játékkonzol garanciával hibátlan működéssel
- Csere-Beszámítás! Számítógép PC Játékra! I5 14400F / RTX 4060ti 16GB / 32GB DDR5 / 1TB SSD
- Apple iPhone 12 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- AKCIÓ! ASUS B650M R5 7600X 64GB DDR5 1TB SSD RTX 3080Ti 12GB Be Quiet! Pure Base 500FX ASUS 1000W
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest