abonnement Unibet Coolblue Bitvavo
pi_120283387
quote:
0s.gif
Op donderdag 13 december 2012 21:11 schreef RemcoDelft het volgende:
Wat moet je met een GUI als je een script typt? Vi is ontworpen om snel mee te werken, leer het, en je bent sneller dan steeds je muis te pakken.

Klein voorbeeld, regel kopieren: yyp, dat kost iets van 0.3 seconden.
Tjah het gaat met niet zozeer om snelheid. Ik doe dit enkel om er wat van te leren. GUI vind ik het makkelijkste, vandaar mijn keuze.
Aim at perfection in everything, though in most things it is unattainable. However, they who aim at it, and persevere, will come much nearer to it than those whose laziness and despondency make them give it up as unattainable.
pi_121298540
ok ik ben een beetje nieuw met shell scripting, en ik krijg een foutmelding die ik niet helemaal begrijp:
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/sh
host_up=
while [ 1 ]; do
        new_host_up=`iw dev wlan0 station dump | grep -c **.**.**.**.**.**`
        if [ $new_hosts_up -ne $host_up ]; then
                echo $new_host_up
                host_up=$new_host_up
        else
                echo 'nothing to do'
        fi
        sleep 5
done
scriptje geeft de volgende output:
1
2
3
4
5
6
7
8
1
[5 seconden later]
sh: 1: unknown operand
nothing to do
[5 seconden later]
sh: 1: unknown operand
nothing to do
enz.

de 1e loop gaat dus goed, daarna niet meer.
Verslikt'ie zich in het feit dat ik new_host_up iedere keer probeer te overschrijven ofzo?

-edit- doel van het scriptje is natuurlijk dat'ie iedere 5 seconden checkt of mijn smartphone aanwezig is (ergo of ik thuis ben).
pi_121299671
Hmm, zet eens " om de vars in de if. Dus "$new_hosts_up" -ne "$host_up".
pi_121301354
while true? of while sleep 5?
జ్ఞ‌ా
pi_121303875
quote:
1s.gif
Op dinsdag 8 januari 2013 08:49 schreef µ het volgende:
while true? of while sleep 5?
while True. Moet een startup scriptje worden op mijn router dat iedere 5 seconden kijkt of ik (mijn telefoon) thuis ben.
zal zodadelijk die aanhalingstekens proberen als ik weer een device met toetsenbord in mijn handen heb.
pi_121303960
True inderdaad (post kwam van mobiel). Kijk ook even of je host_up= wil definieren als host_up=0. Wellicht helpt dat. :s).
జ్ఞ‌ా
pi_121311423
Het waren de aanhalingstekens van NightH4wk :)
pi_121328111
Pfft het waren toch niet die aanhalingstekens. Ik snap er helemaal niets meer van. Hoe fucking moeilijk kan het zijn om gewoon 2 variables tegen elkaar te vergelijken? Enkele haakjes, dubbele haakjes, ronde haakjes, wel/geen dollartekens, wel/geen aanhalingstekens... heb alles zitten proberen maar niets levert het gewenste resultaat.
pi_121329146
Voor de brainiacs onder ons, iemand een verklaring voor het volgende verschijnsel?

1
2
3
4
5
6
7
8
9
10
[root@server1 ~]# ksh
# /bin/false;echo $?
1
# /bin/false;echo $?
1
# echo foo | grep $(echo foo | grep foo)
foo
# /bin/false;echo $?
0

Vooralsnog alleen voor elkaar gekregen op virtuele machines met RHEL/CentOS 5.8...
PSN: Cidolfas - FFXIV: Cidolfas Windu
pi_121329302
php op de router geinstalleerd en het is in 5 minuten gepiept :')
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/php-cli
<?php
$hostonline 
0;
while (
true) {
        
$new_hostonline exec("iw dev wlan0 station dump | grep -c **.**.**.**.**.**");
        if (
$hostonline != $new_hostonline) {
                echo 
$new_hostonline;
                
$hostonline $new_hostonline;
        }
        
sleep(5);
}
  dinsdag 8 januari 2013 @ 21:32:50 #161
29444 RemcoDelft
4 8 15 16 23 42
pi_121329708
quote:
18s.gif
Op dinsdag 8 januari 2013 21:04 schreef KomtTijd... het volgende:
Pfft het waren toch niet die aanhalingstekens. Ik snap er helemaal niets meer van. Hoe fucking moeilijk kan het zijn om gewoon 2 variables tegen elkaar te vergelijken? Enkele haakjes, dubbele haakjes, ronde haakjes, wel/geen dollartekens, wel/geen aanhalingstekens... heb alles zitten proberen maar niets levert het gewenste resultaat.
Ik gebruik uitsluitend bash, geen sh, dus ken de verschillen in details niet.
En ik kan hier niet zien wat "iw dev wlan0 station dump | grep -c **.**.**.**.**.**" voor output zou moeten geven: kan je dat hier dumpen?

In bash zou ik gewoon dit doen:
while test 1; do ping -c 5 192.168.a.b > /dev/null && echo 'Host is up'; done
Met 192.168.a.b het lokale IP wat je natuurlijk vast zet.
censuur :O
pi_121330837
quote:
0s.gif
Op dinsdag 8 januari 2013 21:32 schreef RemcoDelft het volgende:

[..]

Ik gebruik uitsluitend bash, geen sh, dus ken de verschillen in details niet.
En ik kan hier niet zien wat "iw dev wlan0 station dump | grep -c **.**.**.**.**.**" voor output zou moeten geven: kan je dat hier dumpen?

In bash zou ik gewoon dit doen:
while test 1; do ping -c 5 192.168.a.b > /dev/null && echo 'Host is up'; done
Met 192.168.a.b het lokale IP wat je natuurlijk vast zet.
Dat commando kijkt of de device (het mac-adres) in de verbonden stations voorkomt. Werkt prima, geeft 0 terug indien niet, en 1 of hoger indien wel. Ping werkt niet want als je telefoon in sleep gaat kun je 'm niet meer pingen. (bovendien wil je niet iedere 5 seconden een ping naar je telefoon sturen denk ik).

Ik wist niet dat er nog verschil zit tussen sh en bash, dus ook maar even Bash geinstalleerd en weer een paar verschillende combinaties geprobeerd, maar het maakt geen verschil. Ik hou het wel mooi op PHP.
SPOILER2 links
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.


[ Bericht 24% gewijzigd door KomtTijd... op 08-01-2013 21:59:08 ]
  dinsdag 8 januari 2013 @ 22:01:49 #163
187069 slacker_nl
Sicko pur sang
pi_121331347
quote:
0s.gif
Op dinsdag 8 januari 2013 21:23 schreef Cid het volgende:
Voor de brainiacs onder ons, iemand een verklaring voor het volgende verschijnsel?
[ code verwijderd ]

Vooralsnog alleen voor elkaar gekregen op virtuele machines met RHEL/CentOS 5.8...
Simpel toch.

echo foo | grep $(echo foo | grep foo)

dat is zoek foo in foo en dat laat ie zien en dan is de return code 0, bij false is de return code > 0, of 1 in dit geval.

En daarna een /bin/false.. apart, erg apart.


(zsh)$ echo foo | grep -q $(echo foo | grep foo)
22:02 pts/2 0 xxx
(zsh)$ /bin/false
22:02 pts/2 1 xxx

na pts/2 is de return code.
In theory there is no difference between theory and practice. In practice there is.
  dinsdag 8 januari 2013 @ 22:05:04 #164
187069 slacker_nl
Sicko pur sang
pi_121331535
quote:
0s.gif
Op dinsdag 8 januari 2013 21:32 schreef RemcoDelft het volgende:

[..]

Ik gebruik uitsluitend bash, geen sh, dus ken de verschillen in details niet.
En ik kan hier niet zien wat "iw dev wlan0 station dump | grep -c **.**.**.**.**.**" voor output zou moeten geven: kan je dat hier dumpen?

In bash zou ik gewoon dit doen:
while test 1; do ping -c 5 192.168.a.b > /dev/null && echo 'Host is up'; done
Met 192.168.a.b het lokale IP wat je natuurlijk vast zet.
sh is zo goed als dood, je hebt op Solaris nog sh, maar dat is grotendeels hele oude versies. Op Debian based bakken is het vaak dash.
In theory there is no difference between theory and practice. In practice there is.
pi_121334785
quote:
0s.gif
Op dinsdag 8 januari 2013 22:05 schreef slacker_nl het volgende:

[..]

sh is zo goed als dood, je hebt op Solaris nog sh, maar dat is grotendeels hele oude versies. Op Debian based bakken is het vaak dash.
dash?
జ్ఞ‌ా
pi_121335561
sh is niet zo goed als dood, het is gewoon een implementatie van IEEE POSIX 1003.2. Gewoon lekker basic en dat is goed, om systeem scripts uit te voeren, etc.
pi_121339034
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie

Using OpenWRT and my Smartphone to switch the light on when I get home

om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
  woensdag 9 januari 2013 @ 06:41:42 #168
187069 slacker_nl
Sicko pur sang
pi_121341005
quote:
14s.gif
Op dinsdag 8 januari 2013 23:08 schreef µ het volgende:

[..]

dash?
1
2
3
4
5
6
Description: POSIX-compliant shell
 The Debian Almquist Shell (dash) is a POSIX-compliant shell derived from ash. 
 
 Since it executes scripts faster than bash, and has fewer library dependencies (making it more robust against software or
 hardware failures), it is used as the default system shell on Debian systems.
Homepage: http://gondor.apana.org.au/~herbert/dash/
In theory there is no difference between theory and practice. In practice there is.
  woensdag 9 januari 2013 @ 07:07:33 #169
187069 slacker_nl
Sicko pur sang
pi_121341092
quote:
0s.gif
Op dinsdag 8 januari 2013 23:26 schreef NightH4wk het volgende:
sh is niet zo goed als dood, het is gewoon een implementatie van IEEE POSIX 1003.2. Gewoon lekker basic en dat is goed, om systeem scripts uit te voeren, etc.
Welke systemen draaien nog de native bourne shell? Dat zijn er vrij weinig volgens mij.
In theory there is no difference between theory and practice. In practice there is.
pi_121342121
quote:
0s.gif
Op dinsdag 8 januari 2013 22:01 schreef slacker_nl het volgende:

[..]

Simpel toch.

echo foo | grep $(echo foo | grep foo)

dat is zoek foo in foo en dat laat ie zien en dan is de return code 0, bij false is de return code > 0, of 1 in dit geval.

En daarna een /bin/false.. apart, erg apart.


(zsh)$ echo foo | grep -q $(echo foo | grep foo)
22:02 pts/2 0 xxx
(zsh)$ /bin/false
22:02 pts/2 1 xxx

na pts/2 is de return code.

De nested pipe in de command substitution veroorzaakt dat de returncodes niet meer kloppen. Bugreportje aangemaakt..
PSN: Cidolfas - FFXIV: Cidolfas Windu
pi_121351229
quote:
0s.gif
Op woensdag 9 januari 2013 07:07 schreef slacker_nl het volgende:

[..]

Welke systemen draaien nog de native bourne shell? Dat zijn er vrij weinig volgens mij.
De BSDs en Android?
pi_123245567
Vraagje... heeft iemand hier een script die t volgende kan?

Ik heb een folder. Hierin zitten allemaal plaatjes. Nu heb ik een boel dubbele files omdat zij van naam verschillenen. Nu is het veel te veel werk om dit allemaal na te gaan. Daarom zoek een script dat eigenlijk dus checkt welke plaatjes dus allemaal dubbel zijn en dubbele plaatjes verwijderd.
pi_123245786
Maak een hash van elke picca en delete de dubbelen? Zijn scripts voor te vinden.
pi_123245946
Ja heb net deze gevonden die alles checkt;

1find -not -empty -type f -printf "%s\n" | sort -rn | uniq -d | xargs -I{} -n1 find -type f -size {}c -print0 | xargs -0 md5sum | sort | uniq -w32 --all-repeated=separate

En deze die alle dubbele delete
1find -not -empty -type f -printf "%s\n" | sort -rn | uniq -d |  xargs -I{} -n1 find -type f -size {}c -print0 | xargs -0 md5sum | sort | uniq -w32 --all-repeated=separate | cut -f3-100 -d ' ' | tr '\n.' '\t.' | sed 's/\t\t/\n/g' | cut -f2-100 | tr '\t' '\n' | perl -i -pe 's/([ (){}-])/\\$1/g' | perl -i -pe 's/'\''/\\'\''/g' | xargs -pr rm -v

Nu even kijken hoe ik deze recursief kan maken :P
pi_123246127
quote:
7s.gif
Op zaterdag 23 februari 2013 17:34 schreef Dale. het volgende:
Ja heb net deze gevonden die alles checkt;
[ code verwijderd ]

En deze die alle dubbele delete
[ code verwijderd ]

Nu even kijken hoe ik deze recursief kan maken :P
Volgens mij doet je find command dat al automatisch als ik het goed heb.
Aim at perfection in everything, though in most things it is unattainable. However, they who aim at it, and persevere, will come much nearer to it than those whose laziness and despondency make them give it up as unattainable.
pi_123249788
quote:
7s.gif
Op zaterdag 23 februari 2013 17:22 schreef Dale. het volgende:
Vraagje... heeft iemand hier een script die t volgende kan?

Ik heb een folder. Hierin zitten allemaal plaatjes. Nu heb ik een boel dubbele files omdat zij van naam verschillenen. Nu is het veel te veel werk om dit allemaal na te gaan. Daarom zoek een script dat eigenlijk dus checkt welke plaatjes dus allemaal dubbel zijn en dubbele plaatjes verwijderd.
fdupes ;).
జ్ఞ‌ా
pi_123249840
$ fdupes --recursive --noempty /pad/naar/directory

geeft bloedjesnel alle overeenkomende bestanden. Hij zoekt eerst recursief alles, vergelijkt daarna op grootte en daarna op hash.
జ్ఞ‌ా
  zaterdag 23 februari 2013 @ 23:07:00 #178
29444 RemcoDelft
4 8 15 16 23 42
pi_123259302
fdupes is inderdaad fantastisch spul! Voor ik dat vond had ik zelf zoiets in elkaar gescript... fdupes is veel beter.
censuur :O
pi_123260424
quote:
0s.gif
Op zaterdag 23 februari 2013 23:07 schreef RemcoDelft het volgende:
fdupes is inderdaad fantastisch spul! Voor ik dat vond had ik zelf zoiets in elkaar gescript... fdupes is veel beter.
heb er inderdaad een mooi script voor weggegooid :P
జ్ఞ‌ా
pi_123519456
Even nog een vraag voor de script guru's:

Ik heb een script die de applicatie status gecontroleerd. Hij controleert op de applicaties al gestart zijn en als dat niet geval is, doet dit script dat voor mij.

Echter ontstaat het probleem dat hij de applicaties na elkaar controleert (PGREP) en gaat dus alleen verder als de exit status van de vorige applicatie nul is, ergo hij start de rest van de applicaties niet op. Dit heb ik deels weten te omzeilen om programma's als daemon te starten, maar de opeenvolgende programma's hebben die mogelijkheid niet (sickbeard & autosub).

1
2
3
4
5
6
7
8
9
10
11
 if [ $APPLICATIONSTATUS -ne 0 ]; then
  case $APPLICATION in
   sabnzbd) 
            /usr/bin/sabnzbdplus -d
            ;;
   SickBeard*)
            /usr/bin/python /home/mainstream/SickBeard/SickBeard.py
            ;;
   AutoSub*)
            /usr/bin/python /home/mainstream/SickBeard/auto-sub/AutoSub.py
            ;;

Heeft het zin om de output te verwijzen naar /dev/null 2>&1 om dit probleem te omzeilen of hoe kan ik dit het best aanpakken.

BVD :)
Aim at perfection in everything, though in most things it is unattainable. However, they who aim at it, and persevere, will come much nearer to it than those whose laziness and despondency make them give it up as unattainable.
  vrijdag 1 maart 2013 @ 22:22:14 #181
332574 µ
alt-m
pi_123519573
quote:
0s.gif
Op vrijdag 1 maart 2013 22:19 schreef relativity het volgende:
Even nog een vraag voor de script guru's:

Ik heb een script die de applicatie status gecontroleerd. Hij controleert op de applicaties al gestart zijn en als dat niet geval is, doet dit script dat voor mij.

Echter ontstaat het probleem dat hij de applicaties na elkaar controleert (PGREP) en gaat dus alleen verder als de exit status van de vorige applicatie nul is, ergo hij start de rest van de applicaties niet op. Dit heb ik deels weten te omzeilen om programma's als daemon te starten, maar de opeenvolgende programma's hebben die mogelijkheid niet (sickbeard & autosub).
[ code verwijderd ]

Heeft het zin om de output te verwijzen naar /dev/null 2>&1 om dit probleem te omzeilen of hoe kan ik dit het best aanpakken.

BVD :)
Ik doe het zo:
1
2
3
4
pgrep fbpanel || fbpanel&
pgrep RetroShare || RetroShare&
pgrep redshift || redshift -l 52.130:4.659&
pgrep opera || /usr/bin/opera&
Voor elke regel geldt: als het programma niet draait wordt het opgestart :s).
జ్ఞ‌ా
pi_123591503
quote:
14s.gif
Op vrijdag 1 maart 2013 22:22 schreef µ het volgende:

[..]

Ik doe het zo:
[ code verwijderd ]

Voor elke regel geldt: als het programma niet draait wordt het opgestart :s).
Ja dat weet ik dat dat zo kan, alleen weet ik niet hoe ik dit in mijn script moet verwerken, omdat het afzonderlijke commands zijn.
Aim at perfection in everything, though in most things it is unattainable. However, they who aim at it, and persevere, will come much nearer to it than those whose laziness and despondency make them give it up as unattainable.
pi_124349832
Weet iemand of het volgende kan in VIM? En zo ja hoe?

Bij het copy/paste/delete in VISUAL mode kan ik iets kopieren en dan maar één keer pasten. Ik wil iets kopieren en dan ongelimiteerd pasten zonder dat ik dus die copy actie weer opnieuw moet doen. Hoe doe ik dat?
  donderdag 21 maart 2013 @ 21:06:33 #184
187069 slacker_nl
Sicko pur sang
pi_124350855
quote:
7s.gif
Op donderdag 21 maart 2013 20:48 schreef Dale. het volgende:
Weet iemand of het volgende kan in VIM? En zo ja hoe?

Bij het copy/paste/delete in VISUAL mode kan ik iets kopieren en dan maar één keer pasten. Ik wil iets kopieren en dan ongelimiteerd pasten zonder dat ik dus die copy actie weer opnieuw moet doen. Hoe doe ik dat?
Je kan het in een paste buffer stoppen, even vergeten hoe ookalweer.

Select block, shift " [a-z] y (om te yanken).
dan

shift " [a-z] p (om te pasten).

en a-z zijn dan je buffers, dus je kan een buffer in a hebben, in b en die zijn verschillend.

En dat werkt ook tussen files in dezelfde vim sessie.
In theory there is no difference between theory and practice. In practice there is.
pi_124350893
quote:
0s.gif
Op donderdag 21 maart 2013 21:06 schreef slacker_nl het volgende:

[..]

Je kan het in een paste buffer stoppen, even vergeten hoe ookalweer.

Select block, shift " [a-z] y (om te yanken).
dan

shift " [a-z] p (om te pasten).

en a-z zijn dan je buffers, dus je kan een buffer in a hebben, in b en die zijn verschillend.

En dat werkt ook tussen files in dezelfde vim sessie.
Super! Ga even proberen dan :)
  donderdag 21 maart 2013 @ 21:12:33 #186
187069 slacker_nl
Sicko pur sang
pi_124351183
quote:
7s.gif
Op donderdag 21 maart 2013 21:07 schreef Dale. het volgende:

[..]

Super! Ga even proberen dan :)
Moet lukken, ik heb het net getest :P
In theory there is no difference between theory and practice. In practice there is.
pi_124351305
quote:
0s.gif
Op donderdag 21 maart 2013 21:12 schreef slacker_nl het volgende:

[..]

Moet lukken, ik heb het net getest :P
pi_128834295
1
2
3
4
5
6
running=$(mysql -u ******** -p******** -e SHOW SLAVE STATUS\G" | /bin/grep "Slave_SQL_Running: ")
if [${running} == "Slave_SQL_Running: Yes"]; then
    /usr/bin/zenity --warning --text="Replication is running\n${running}" --display=:0.0
else
    /usr/bin/zenity --warning --text="Replication is NOT running\n${running}" --display=:0.0
fi
ik krijg constant de melding:
line 2 [: missing `]'
...en hij gaat naar het else statement, terwijl echo ${running} wel degelijk "Slave_SQL_Running: Yes" laat zien...

Weet iemand wat ik fout doe?

-edit-
fixed
== moest zijn =
en hij struikelde over whitespaces.

[ Bericht 3% gewijzigd door KomtTijd... op 11-07-2013 14:37:58 ]
  donderdag 11 juli 2013 @ 18:39:29 #189
187069 slacker_nl
Sicko pur sang
pi_128843163
quote:
14s.gif
Op donderdag 11 juli 2013 14:14 schreef KomtTijd... het volgende:

[ code verwijderd ]

ik krijg constant de melding:
line 2 [: missing `]'
...en hij gaat naar het else statement, terwijl echo ${running} wel degelijk "Slave_SQL_Running: Yes" laat zien...

Weet iemand wat ik fout doe?

-edit-
fixed
== moest zijn =
en hij struikelde over whitespaces.
Waarom zou je dat doen?

als je echo bla | grep -q bla doet dan weet je de return value van grep en dan kan je met een simpele stukje code eea fixen:

1
2
3
4
5
6
echo bla | grep -q bla 
if [ $? -eq 0 ] ; then
   echo "bla found"
else
   echo "bla was not found"
fi
In theory there is no difference between theory and practice. In practice there is.
pi_128844030
omdat 3 woorden: quick and dirty.

maar die tip ga ik er morgen toch wel even in verwerken denk ik
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')

Het lijkt erop dat je onze advertenties blokkeert

Dat begrijpen we, maar is wel erg jammer. Je kunt FOK! namelijk wel gratis LEZEN, maar we kunnen FOK! niet gratis MAKEN. De inkomsten van de advertenties zorgen ervoor dat we de kosten van de site kunnen dragen zodat je ook morgen FOK! nog kunt bezoeken.

Zou je willen overwegen om voor FOK! een uitzondering te maken in je adblocker (of andere middelen die onze ads blokkeren)? Je krijgt deze melding dan nooit meer te zien.

Ja, ik wil fok.nl whitelisten, laat me zien hoe

Ik neem liever een premium account zodat ik geen advertenties hoef te zien (je moet eerst inloggen)
Ja, breng me naar de shop