heiko-barth.de

// 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

// 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.

// 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.

// 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)
Web 2.0



RSS   RSS abonieren

Github   Github
QR Code