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.quote: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.
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 |
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. |
while True. Moet een startup scriptje worden op mijn router dat iedere 5 seconden kijkt of ik (mijn telefoon) thuis ben.quote:
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 # |
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); } |
Ik gebruik uitsluitend bash, geen sh, dus ken de verschillen in details niet.quote: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.
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).quote: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.
SPOILEROm 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 ]
Simpel toch.quote: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...
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.quote: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.
dash?quote: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.
quote:
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/ |
Welke systemen draaien nog de native bourne shell? Dat zijn er vrij weinig volgens mij.quote: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.
De nested pipe in de command substitution veroorzaakt dat de returncodes niet meer kloppen. Bugreportje aangemaakt..quote: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 BSDs en Android?quote: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.
1 | find -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 |
1 | find -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 |
Volgens mij doet je find command dat al automatisch als ik het goed heb.quote: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
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |