Omdat er in elk script-request/"hoe kan ik XX vanaf de prompt" topic toch altijd weer leuke dingen voorbij komen, en er bijna altijd wat valt te leren van de oplossingen van anderen, leek het me leuk om een verzameltopic te hebben waar iedereen zijn/haar handigheidjes kan delen met anderen.
Volgens mij zijn er best meer mensen die net als ik een ~/scripts directory hebben met bash/perl/tcl/$taal scriptjes, en ik ben heel benieuwd naar wat anderen hebben geautomatiseerd. Alvast excuses dat ik zelf (bijna) alles in perl doe, dat wil niet zeggen dat ik niet opensta voor andere talen
Om aan te geven in welke richting ik denk trap ik af:
Naam: hussel.pl
Doel: mp3 playlist random door elkaar gooien
Werking: leest bestand of stdin, randomize, schrijf naar bestand of stdout
OS: linux Taal: perl
Configuratie: -
Parameters: bronbestand doelbestand, zonder params worden stdin en stdout gebruikt, bv:
hussel.pl playlist.m3u randomplaylist.m3u
of
cat playlist.m3u | hussel.pl > randomplaylist.m3u
of
hussel.pl playlist.m3u >randomplaylist.m3u
Opmerkingen:
ik weet niet waar ik dit vandaan heb, maar aan de stijl te zien heb ik het niet (helemaal) zelf gemaakt
Naam: chkpkg.pl
Doel: Kijken of je een slackware package zonder risico kan uitvoeren. Dit omdat .tgz bestanden van anderen niet altijd even netjes gemaakt zijn.
Werking: Kijkt of de bestanden in de uitvoer van 'installpkg -warn' al bestaan, en meldt dat
OS: slackware Taal: perl
Configuratie: -
Parameters: geen, uitvoer van installpkg naar dit script sturen:
installpkg -warn package.tgz | chkpkg.pl
Opmerkingen heeft alleen nut indien root
Als leidraad bij het posten is dit misschien handig om te c/p-en:
[b]Naam: [/b]
[b]Doel: [/b]
[b]Werking: [/b]
[b]OS: [/b] [b]Taal: [/b]
[b]Configuratie: [/b]
[b]Parameters: [/b]
[b]Opmerkingen: [/b]
[code]
[/code]
Paar puntjes:
Volgens mij zijn er best meer mensen die net als ik een ~/scripts directory hebben met bash/perl/tcl/$taal scriptjes, en ik ben heel benieuwd naar wat anderen hebben geautomatiseerd. Alvast excuses dat ik zelf (bijna) alles in perl doe, dat wil niet zeggen dat ik niet opensta voor andere talen
Om aan te geven in welke richting ik denk trap ik af:
Naam: hussel.pl
Doel: mp3 playlist random door elkaar gooien
Werking: leest bestand of stdin, randomize, schrijf naar bestand of stdout
OS: linux Taal: perl
Configuratie: -
Parameters: bronbestand doelbestand, zonder params worden stdin en stdout gebruikt, bv:
hussel.pl playlist.m3u randomplaylist.m3u
of
cat playlist.m3u | hussel.pl > randomplaylist.m3u
of
hussel.pl playlist.m3u >randomplaylist.m3u
Opmerkingen:
ik weet niet waar ik dit vandaan heb, maar aan de stijl te zien heb ik het niet (helemaal) zelf gemaakt
code:
1
2
3
4
5
6
7
8
9
10
11
12
| #!/usr/bin/perl # randomize source file # lines are output in random order # reads from from stdin or arg0, writes to stdout or arg1 open (STDIN, $ARGV[0]) if (($ARGV[0] ne "") && ($ARGV[0] ne "-")); open (STDOUT, ">$ARGV[1]") if ($ARGV[1] ne ""); @list = <STDIN>; while (@list) { $rand = rand (@list); print $list[$rand]; # for indexing rand is truncated splice @list, $rand, 1; # delete array element } |
Naam: chkpkg.pl
Doel: Kijken of je een slackware package zonder risico kan uitvoeren. Dit omdat .tgz bestanden van anderen niet altijd even netjes gemaakt zijn.
Werking: Kijkt of de bestanden in de uitvoer van 'installpkg -warn' al bestaan, en meldt dat
OS: slackware Taal: perl
Configuratie: -
Parameters: geen, uitvoer van installpkg naar dit script sturen:
installpkg -warn package.tgz | chkpkg.pl
Opmerkingen heeft alleen nut indien root
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| #!/usr/bin/perl # # check wether files that are about to be overwritten exist # IMPORTANT: # only usefull if installpkg -warn is run as root, # when run as a regular user the installscript will not # be evaluated by installpkg, and important info could be missing. ( rm -rf stuff ) # # simply feed this script with the output from installpkg -warn package.tgz # i.e: # installpkg -warn package.tgz | chkpkg.pl # # mailme@dkit.nl # version 20020820 sub check { $fileordir = shift; if ( -e "/".$fileordir ) { print "check: $fileordir exists!\n"; } } while (<>) { chomp; $regel = $_; $regel =~ s/\s+$//; if ( $regel =~ /^[^\s]+\n/ ) { # single word on 1 line means something from the installscript. check($regel); } else { if ( $regel =~ /\// ) { # any line with a / in it is probably a file/dir $regel =~ s/^.+\s//g; check($regel); } } } |
Als leidraad bij het posten is dit misschien handig om te c/p-en:
[b]Naam: [/b]
[b]Doel: [/b]
[b]Werking: [/b]
[b]OS: [/b] [b]Taal: [/b]
[b]Configuratie: [/b]
[b]Parameters: [/b]
[b]Opmerkingen: [/b]
[code]
[/code]
Paar puntjes:
- Commentaar is welkom, maar probeer termen als "100 keer beter" "crappy" en "prutz0r" te vermijden.
- Denk 2 keer na voor je code van anderen uitvoert die je niet helemaal begrijpt.
- De meeste scripts hier (de mijne iig zeker) zijn met een specifiek doel voor een specifieke user geschreven, verwacht svp niet dat alles zomaar overal werkt en/of doet wat je hoopt.
- Probeer religieuze $editor/$language oorlogen te vermijden, evenals wedstrijdjes in onleesbare oneliners. Voor dat laatste kun je dit topic gebruiken.
offtopic:
dit topic heeft het goedkeurmerk van de nederlandse vereniging van huisvrouwen een NOS-mod,
en het is voor mij persoonlijk een record in hoeveelheid RML-tags ooit in 1 post
dit topic heeft het goedkeurmerk van de nederlandse vereniging van huisvrouwen een NOS-mod,
en het is voor mij persoonlijk een record in hoeveelheid RML-tags ooit in 1 post
[ Voor 3% gewijzigd door pinball op 22-11-2003 13:07 . Reden: layout ]
Whenever you find that you are on the side of the majority, it is time to reform.