Hirdetés
- btz: Internet fejlesztés országosan!
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- eBay-es kütyük kis pénzért
- sziku69: Szólánc.
- Luck Dragon: MárkaLánc
- gban: Ingyen kellene, de tegnapra
- sh4d0w: StarWars: Felismerés
- [K2]: AnyDesk átverés
- V.Milán: Lapdiffúzor nyomáseloszlása: gondoltad volna?
Új hozzászólás Aktív témák
-
Ez miért van így, és hogyan lehetne megoldani? Hiszen végeredményben a "continue" egy while loop-ban van, nem is csak egy if szerkezetben.
A példascript:
#!/bin/bashfunc() {ls /tmp/eznincsitt || continue}while true; doif [ "1" -eq "1" ]; thenfuncfiexitdonebash -x futtatás eredménye:
+ true+ '[' 1 -eq 1 ']'+ func+ ls /tmp/eznincsittls: cannot access '/tmp/eznincsitt': No such file or directory+ continue/tmp/test.sh: line 4: continue: only meaningful in a `for', `while', or `until' loop+ exit -
Nem tudom hogy működik ez a githubosdi.
Easy
Röviden:
1., Belépsz a github fiókodba
2., Megnyitod a projektben azt a fájlt, amit magadnál is szerkesztettél. Ez esetben ezt
3., Jobb felül "ceruza", mintha szerkeszteni akarnád
4., Forkolod a repot magadhoz
5., Megszerkeszted a fájlt, majd elmented
6., Beküldöd a pull requestet
7., Kész
-
ksh-ban hogy lehet dinamikus nevű változót létrehozni/használni? Bash-ban így működik, de ksh-ban nem, és nem találtam rá megoldást:
# cat test.sh#!/bin/basha_2014='hello 2014'year=2014varname=a_${year}echo ${!varname}# ./test.sh# hello 2014 -
Ezt most nem értem... Szeretném egy változót ellenőrizni, hogy tartalmazza-e a "https" részt.
#!/bin/shVAR="https://barmilyenurl.com"[ "$VAR" = *"https"* ] && echo "VAR tartalmazza ezt: https"A kimenet mégis üres. Miért?
-
válasz
gery2123
#2760
üzenetére
Egy fájlba ezt dobd bele (IP-t írj bele, meg a wakeup commandot)
! ping -c 1 192.168.0.1 &> /dev/null && WAKEUP_COMMAND_IDEMajd a crontabban időzítsd be 5 percenkénti futásra, valahogy így:
*/5 * * * * /azen/scriptem.sh
---De lehet így is működik, majd a többiek megerősítik vagy cáfolják:
*/5 * * * * ! ping -c 1 192.168.0.1 &> /dev/null && WAKEUP_COMMAND_IDE -
Munkahelyen találtam egy scriptet, ami tartalmaz egy ilyen részt:
if [ "$VALAMI" -gt "1" ]; thenecho akarmifiexec 2>&1if [ "$VALAMI2" -gt "1" ]; thenecho akarmi2fiKözépen annak az exec-nek van bármi értelme?
-
Szeretném kiíratni az alábbi szöveget (nagyon leegyszerűsített példa), hogy éppen hol tart a folyamat, de nem mindig új sorban, hanem mindig ugyanabba. Hasonlóan, mint egy process bar.
A kódom valahogy így néz ki
for i in {1..10}; dosleep 1 && echo -e "Épp itt tartok: $i\nMinden oké."doneNa most ha így csinálom, 20 sor lesz az output. Azt szeretném, hogy több sort írjon ki, de éppen csak azt, ahol tart (vagyis jelen példában mindig 2 sort jelenít csak meg). Nem tudom hogy keressek rá

Valami ilyesmit szeretnék, csak nem egy karaktert kiírni, hanem akár több sort egyszerre.
i=1sp="/-\|"echo -n ' 'while truedosleep 0.1printf "\b${sp:i++%${#sp}:1}"done -
-
Hogyan lehetne megszámolni, hogy adott számsorozat elemei között (ebben a sorrendben nézve) hányszor történt emelkedés/csökkenés? Példa:
2
3
4
6
2
1
7
3A fenti példában 4 alkalommal emelkedett és 3 alkalommal csökkent az érték.
Nyilván összehasonlítom az aktuálisat az előzővel, ez rendben van, csak hogyan kezelem le ezt a legelső elemnél? Counterrel a for cikluson belül?
-
ksh-ban szeretnék tört számokkal dolgozni, lehetőleg külső parancs nélkül. Az oka, hogy több tízezerszer kell lefuttatnom, és számít, mennyi idő alatt végez. awk-val már megcsináltam, csak lassú.
A furcsa az, hogy itt kiírja rendesen az eredményt tört számként:
pi@raspberrypi:~ $ ksh -c 'echo $((250/0.8))'
312.5Itt viszont nem:
pi@raspberrypi:~ $ ksh -c 'echo $((24832/23413))'1És így sem:
pi@raspberrypi:~ $ ksh -c 'echo $((23413/24832))'0Miért? És hogyan lehetne rávenni, hogy ne kerekítsen?

-
Van egy ilyen awk parancsom:
awk "BEGIN {print (($(awk "BEGIN {print (100 - 0.11)}") * 0.000025442)/100)}"A kimenet pedig így néz ki:
2.5414e-05
Na most én ezt "normálisan" kiírva szeretném megkapni, nem pedig tudományos formátumban. Találtam ezt a megoldást, de beillesztve (print cserélve printf-re) nem működik, errort dob:awk "BEGIN {printf "%.2f", (($(awk "BEGIN {printf "%.2f", (100 - 0.11)}") * 0.000025442)/100)}"Error:
awk: line 1: syntax error at or near %Hogyan kaphatnám meg az eredményt, ami
0.00002541401?
-
Hogyan tudom egy stringről megállapítani, hogy tartalmaz-e a ponton és a 0-án kívül mást?
Konkrétabban van egy számom (
0.000000formátumban ), ami aztán lehet0.534545,6.3434vagy8is. Azt szeretném megvizsgálni, hogy az értéke 0 vagy annál nagyobb.
Talán a legegyszerűbb megoldás a pontra és 0-ra szűrni, és ha mást is tartalmaz, akkor jelez. De lehet van még egyszerűbb megoldás is
-
Szeretnék létrehozni egy olyan (valószínűleg) tömböt, ami x számú elemet tartalmazhat, és ha a limiten felül hozzáadok egy újat, akkor a a legrégebben hozzáadott kiesik belőle.
Létezik ilyen? Ha igen, mi a neve?
Példa 3 tagú tömbre:
Ujelem1Ujelem2Ujelem3Majd ha hozzáadom az Ujelem4-et, és így nézne ki:
Ujelem2Ujelem3Ujelem4Most egy fájlba irányítom ezeket az elemeket és onnan szűrök rá tail-el, de rendkívül lassú módszer így.
-
Van egy for ciklusom, ami már létező változókon megy végig. A változók végén változik a szám.
pl. w1, w2, w3
Szeretném használni egy curl parancsban, de sehogy sem tudom feloldani:
w1="https://prohardver.hu"w1="https://hardverapro.hu"w3="https://logout.hu"for i in w{1..3}; donumber=${i: -1}[ $(curl -sI "$(echo w${number})" | grep -c 'HTTP/2 200') != "1" ] && echo OKdoneA teljes változó website1 lenne, de ha elé írok egy dollárjelet, akkor a website változót üresnek veszi, és a curl csak az "1"-et kapja meg. echo-val sem sikerült megoldanom. Mi a megoldás?
-
-
Van egy számsorom, pl.
2 3 4 5 10 9 7 8 10
Szeretném a legnagyobb ugrást/kilengést megtalálni, vagyis a fenti esetben a két egymás mellett lévő 5 és 10 értéket. A számok egy fájlban vannak, minden sorban egy szám.
A még jobb megoldás lenne ezt százalékos különbséggel megnézni :)
Logikailag ezt hogy lehetne kivitelezni?
-
Váó, köszönöm a sok segítséget
Sorban:Menü rendszer átvariálva, az észrevételek teljesen jogosak
Most már változókkal dolgozik a script. Teljesen abban voltam, hogy a case-ból kilépve elfelejti a belsejében definiált változókat.A cron bejegyzés immáron az /etc/cron.d/ mappába kerül, és onnan is törli ki a fájlt uninstall-nál. Ésszerűbb, egyszerűbb, biztonságosabb. Jó észrevétel
a dirname $0/basename $0 az, szerintem, $0.
Így van. Javítva
Tök jó lenne, ha ezt paranccsorból is meg lehetne adni, mert mondjuk .deb csomagot így elég nehéz csinálni belőle
Erre holnap ránézek.ja, és uninstallkor ezeket szerintem illene kiszedni az iptablesből.
Jogos. Ezt is holnap megnézem hogyan lehet egyszerűen kivitelezni.és ha jól emlékszem, case-hez shellben nem kell külön break, a ;; megoldja.
Sajnos nem, break nélkül újra megkérdezi, hogy mit szeretnék választani az étlapról és nem ugrik tovább.A harmadik sorhoz: ennek egyrészt az /usr/local/sbin-ben lenne a helye...
Nem értem pontosan mire gondolsz itt.a grepnek van egy -F kapcsolója...
Valamiért nem működik,invalid context length argumenthibát ad a grep. -
Első GitHub projektem, kérnék építő jellegű kritikát, a topik témájából fakadóan főleg a kódra nézve

-
válasz
samujózsi
#2488
üzenetére
Ami az első sorban van, az annyit csinál, hogy a megadott könyvtárból a
grepkiszűri azokat a találatokat, amikwpclistringet tartalmaznak, majd kiprinteli a legutolsó sort, a végén azawkpedig a 9. oszlopot.Elméletileg az awk is ugyanezt csinálná, csak valamiért mégsem. A kizárásos szűrés nélkül lefut hiba nélkül:
ls -dl /mnt/backup/* | awk 'END{ print $9 }'Amit írtál commandot valóban működik (
), csak nem értem, hogy az enyém miért nem, és miért kellett bonyolítani, hogy működőképes legyen? 
-
válasz
Jester01
#2476
üzenetére
Ha már itt tartunk, nem engedtem el ezt a command egyszerűsítés dolgot

Ezt a parancsot:
ls -dl /mnt/backup/* | grep -v wpcli | tail -1 | awk '{ print $9 }'Erre alakítottam át, csak valamiért nem működik:
ls -dl /mnt/backup/* | awk '! /wpcli/ END{ print $9 }'És sajnos így sem:
ls -dl /mnt/backup/* | awk '! /wpcli/ && END{ print $9 }'A hiba:awk: cmd. line:1: ! /wpcli/ END{print $9}awk: cmd. line:1: ^ syntax error
Hol lehet a gond? -
Van egy parancsom, ami a következő:
certbot certificates | grep 'Domains' | awk '{ print $2 }' &> /tmp/fileTökéletesen lefut, az egyetlen probléma, hogy az alábbi output megjelenik a terminálban:
Saving debug log to /var/log/letsencrypt/letsencrypt.logHa így futtatom, akkor nem jelenik meg, csak ez esetben a szűrés nincs elvégezve:
certbot certificates &> /tmp/fileSzeretném elrejteni, ami miatt a parancsom végén a "&>" átirányítást használom. Azonban ez nem működik, ha közben még átadom az outputot más parancsoknak pipe-al.
Hogyan lehetne elrejteni ezt az egy sort, ami megjelenik pluszban?
-
Lehet volt már, de találtam egy egészen hasznos cikket a témában:
-
Van egy python script (pgAdmin - setup.py), ami a futtatásakor bekér 3 dolgot egymás után:
- Email cím
- Jelszó
- Jelszó még egyszerPróbáltam már így scriptelni, de valamiért nem működik:
echo $EMAIL && echo $PW && echo $PW $(python ./setup.py)Egyszerűen nem veszi be az echo-zott adatokat.
Hogyan lehetne lescriptelni, hogy ne kelljen manuálisan beírni?
-
Szeretnék kicserélni egy szöveget egy fájlban
erről:
listen_addresses = 'localhost'erre:
listen_addresses = '*'Azonban az alábbi commanddal nem működik, a szimpla macsaköröm és a csillag miatt
sed -i "s/listen_addresses = 'localhost'/listen_addresses = '*'/g" "/tmp/postgresql.conf"Hogyan lehetne ezt megoldani?
-
-
Ma nekiültem optimalizálni a scriptjeimet sebesség szempontjából.
Az alábbiakat alkalmaztam:
cut gyorsabb, mint az awk vagy a sed
cat file | grep kulcsszo
helyettgrep "kulcsszo" /file/eleresi/ut#!/bin/bash
helyett#!/bin/shAz eredmény:
Az egy scriptemnél 2,9s helyett 1,2s
A másiknál pedig 4,6s helyett 1,5s lett a lefutási idő
Úgy érzem megérte

-
Logikailag hogyan lehet felépíteni egy olyan parancsot, ami rekurzívan az összes almappában keres, és amelyikben csak egy fájl létezik ( aminek kiterjesztése .srt ), azok útvonalait listázza ki?
-
Nem tudom hogyan induljak el, egy kis (elméleti) segítséget kérnék.
Van egy scriptem, amiben nagyjából hasonló sorok vannak, összesen 16, viszont szebben szeretém megoldani:
mysqldump --opt -Q -u USER --password=PASSWORD DATABASE_0 | gzip > /tmp/DATABASE_0.sql.gz
mysqldump --opt -Q -u USER --password=PASSWORD DATABASE_1 | gzip > /tmp/DATABASE_1.sql.gz
mysqldump --opt -Q -u USER --password=PASSWORD DATABASE_2 | gzip > /tmp/DATABASE_2.sql.gz
mysqldump --opt -Q -u USER --password=PASSWORD DATABASE_3 | gzip > /tmp/DATABASE_3.sql.gz
..
..
..
mysqldump --opt -Q -u USER --password=PASSWORD DATABASE_F | gzip > /tmp/DATABASE_F.sql.gzTehát az értékek amik változnak, azok 0-9 közötti számok és a-f betűk.
Valamiféle ciklust szeretnék létrehozni, ami mindössze ezeket a változó értékeket helyettesíti be annyiszor, ahány van belőlük ( jelen esetben 16 ), utána pedig kilép.
Hogyan lehetne ezt megoldani? Valami kis egyszerű példát tudnátok rá mutatni?
Köszönöm

-
Érdekesség:
-
while [ $(ls /egyik/path | wc -l) -gt $(ls /masik/path | wc -l) ]
do
some commands
doneA vastagított rész értékéhez szeretnék hozzáadni egyet. Hova kellene beírnom, és legfőképp, hogyan?

-
Van egy szerver, amin szeretnék crontabbal futtatni egy shell scriptet egy adott userrel. Azonban nem megy.
Ha a scriptet önmagában lefuttatom ( ./ezazascript.sh ), akkor sikeresen lefut.
Ha beírom crontabba, akkor nem fut le.
Viszont ha ugyanebbe a crontabba beírok pl. egy touch-ot, akkor az lefut.Ilyen jogai vannak a scriptnek, ez elég?
-rwxr-x--- 1 user group 318 Aug 18 10:35 ezazascript.sh
Mi lehet a gond?
-
Lehet olyan shell scriptet írni, hogy megvizsgálja a legutóbb kiadott parancs kimenetét, és ha adott szöveg van benne, akkor továbbengedi, míg ha nincs benne, akkor megáll / kiír egy szöveget?
Ha igen, hogyan? Milyen kulcsszavakra kellene keresnem?

-
Köszönöm a válaszokat!
bob.zxr: Ez esetben nem kérne jelszót? Gyanítom, hogy de

colomb2: Próbáltam, ezt a hibát kaptam:
standard in must be a tty
vargalex: Olyan szerverről van szó, ahol nem vagyok root és nincs is jogom szerkeszteni a sudoers fájlt. Csak az adott user jelszavát tudom, akinek a nevében a parancsokat kellene futtatni.
bambano: Pontosabban mire gondoltál?

-
Van egy user, aminek a nevébe szeretnék átjelentkezni a shell scriptem futtatásakor. Hogyan tudom ezt megtenni?
su - username
Idáig oké, de a hozzá tartozó jelszót hogyan iratom be vele?
-
Szeretnék egy script-et írni ( egyenlőre csak a következő dologra ) Windows alatt.
"C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
ping www.prohardver.huA fenti két paranccsal az a gondom, ha lefut az első sor, nem lép tovább a másodikra, hanem megvárja míg a Firefox be nem záródik. Hogyan lehetne ezt kiküszöbölni?
Az most lényegtelen, hogy értelme nincs, majd lesz ha bővítem

-
válasz
bambano
#2048
üzenetére
Cégen belüli spéci program. Annyi, hogy amikor megnyitom, egyből lehet is gépelni a jelszót, illetve utána az entert megnyomni. Ezt minden gépindításnál meg kell tenni, mind a négy programnál, ezt szeretném automatizálni.
Programok indítása, illetve a közöttük való várakozás már megvan, már csak gépelni kellene, illetve entert/tabot ütni.
-
válasz
Jester01
#2044
üzenetére
Időközben rájöttem, hogy ( valószínűleg a cache miatt ) a tömörítés ~1mp alatt végez. Így a beírt parancsok folyamatosan futnak le, csak meglepően gyorsan.
Más: Lehetséges olyan script-et írni linux-ra, ami adott programban begépel adott szöveget, majd leüt egy entert? Gyakorlatilag olyan megoldást keresek, ami szimulálja a karakter leütéseket, és lehetőleg script-ként futtatható.
-
válasz
Jester01
#2038
üzenetére
Egy scriptben van mysql dump és tar-os tömörítés. Az utolsó mysql mentéssel és a tömörítéssel is gyannabn a másodpercben végez. A tar.gz állomány mérete ~600MB.
Ebből arra következtetek, hogy a mysql dump és a tar tömörítés egyszerre fut le. Ez többszöri tesztelés után is így lett. A scriptben első körben a mysql mentés van, majd pedig a legvégén a tömörítés.
-
Ha egy shell script fájlban megadok több tömörítést egy-egy sorban, pl.:
tar -zcvf /var/backup1.tar.gz /egyik
tar -zcvf /var/backup2.tar.gz /masik
tar -zcvf /var/backup3.tar.gz /harmadikEgyszerre futnak le ezek a tömörítések? Ha igen, hogyan tudnám őket egymás után ( nem párhuzamosan ) lefuttatni. Ha lehet, akkor olyan kitétellel, hogyha pl. a "masik" hibába ütközik, akkor is fusson le a "harmadik"?
Új hozzászólás Aktív témák
- Napelem
- Arc Raiders
- Kezdő fotósok digitális fényképei
- One otthoni szolgáltatások (TV, internet, telefon)
- Többet ésszel, mint klisével: mindent felforgat a Gemini 3
- A nagy Szóda, Szódakészítés topic - legyen egy kis fröccs is! :-)
- Milyen processzort vegyek?
- TCL LCD és LED TV-k
- Olcsó vs. drága egér: melyiknél érzed meg igazán a különbséget?
- Sweet.tv - internetes TV
- További aktív témák...
- HIBÁTLAN iPhone 13 Pro Max 128GB Alphine Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3722, 100% Akksi
- BESZÁMÍTÁS! ASUS H510M i5 10400F 16GB DDR4 512GB SSD RTX 2080 Super 8GB Zalman T4 PLUS FSP 700W
- LG Gram 14 WUXGA IPS i7-1360P 5.0Ghz 12mag 32GB DDR5 1TB SSD Intel Iris XE 10óra Akku Win11 Garancia
- GYÖNYÖRŰ iPhone 14 Pro Max 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3915, 100% Akkumulátor
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest



)

