Új hozzászólás Aktív témák
-
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).
-
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
) -
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). -
"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 -
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.
-
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. -
-
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).
-
"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

-
"& 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
-
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
} -
"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.)
-
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 editor
Vagyis 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. -
#!/bin/sh
tac ''$@''
Bocs
Mondjuk 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] -
-
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
-
Akkor koltozzunk at ide a linuxos topikbol...
Új hozzászólás Aktív témák
- Máris megvásárolható az Ulefone új RugKing szériája
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Kerékpárosok, bringások ide!
- Okos Otthon / Smart Home
- Xbox Series X|S
- Megbüntették, ezért feloszlatná az EU-t Elon Musk
- Synology NAS
- Épített vízhűtés (nem kompakt) topic
- GoodSpeed: Munkaügyi helyzet Hajdú-Biharban: észak és dél!
- ZEN.com
- További aktív témák...
- ÚJ akku! Lenovo ThinkPad X1 Extreme Gen2 i7-9850H 16GB 512GB GTX1650 500nit UHD 1 év teljeskörű gar.
- Samsung Galaxy S23 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- LG 27UL500P-W - 27" IPS - 3840x2160 4K - 60Hz 5ms - HDR10 - AMD FreeSync - 300 Nits - sRGB 99%
- LG 32GQ850-B - 32" NANO IPS ATW / 2560x1440 / 260Hz 1ms / NVIDIA G-Sync / AMD FreeSync / HDR 600
- Huawei P30 Pro 256GB,Átlagos,Adatkabel,12 hónap garanciával
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

)


