2013-03-02 // cat & zcat kombiniert
- catz
#!/bin/bash [ -t 0 ] && [ "$1" == "" ] && echo "Concatenate files (gziped files decompressed) and print on the standard output." >&2 && echo "Syntax: catz [<files>]" >&2 && echo >&2 && exit 1 [ ! -t 0 ] && cat - # output STDIN while [ 1 ]; do [ "$1" == "" ] && exit [ "$1" == "-" ] && shift && continue if [[ "$1" =~ gz$ ]]; then zcat "$1" else cat "$1" fi shift done
2012-12-05 // BASH: "mkdir" und "cd" kombinieren
Vielleicht kennt ihr das: Man erstellt ein Verzeichnis mit mkdir foo
und wechselt anschließend direkt mit cd foo
hinein.
Um das etwas zu verkürzen, kann man sich wie folgt behelfen:
Im Suchpfad ($PATH
), z.B. unter /usr/local/bin
, erstellt man ein Skript mkcd
.
- mkcd
#!/bin/bash mkdir -p "$@" && cd "$@"
Ruft man nun auf der BASH
. mkcd foo
auf, wird ein Verzeichnis erstellt und automatisch hinein gewechselt.
Der Punkt am Anfang ist nötig, da sonst nur das aufrufende Skript in das Verzeichnis wechselt und nicht die aktuelle BASH Sitzung.
Noch eleganter geht es mit einem BASH-Alias. Diesen erstellt man z.B. in ~/.bashrc
.
alias mkcd='source mkcd'
Nun reicht es mkcd foo
einzugeben.
2012-10-25 // Donnerstag
Clay Shirky - How the Internet will (one day) transform government
foo/bar
Bash-Fun
yes $COLUMNS $LINES|awk 'BEGIN{x=y=e=f=1}{if(x==$1||!x){e*=-1};if(y==$2||!y){f*=-1};x+=e;y+=f;printf "\033[%s;%sH",y,x;system("sleep .02")}'
Tipp: Zum Abbrechen STRG + Z
drücken. Den Prozess dann mit kill %1
beenden.
2012-09-23 // Sonntag
Xiki: Can your shell console do this?
NASA: Magnificent Eruption in Full HD
foo/bar
2012-06-24 // Sonntag
Aalto Talk with Linus Torvalds
Aalto Talk with Linus Torvalds, hosted by Aalto Center for Entrepreneurship (ACE) in Otaniemi on June 14, 2012. Linus was interviewed by Will Cardwell and followed with a Q&A session with the audience. Enjoy!
foo/bar
- reggae.sh
#!/bin/bash # Reggae / Pan-African colors STARS=$(for i in $(seq 1 $(tput cols)); do echo -n '#';done); for j in $(seq 1 3);do for k in $(seq 1 $(echo "scale=0;$(tput lines)/3-1"|bc -l));do if [ $j -eq 1 ];then # red echo -e "$(tput setaf 1)$STARS" elif [ $j -eq 2 ]; then # yellow echo -e "$(tput setaf 3)$STARS" else # green echo -e "$(tput setaf 2)$STARS" fi done done echo -e $(tput sgr0)