Du bist nicht angemeldet.
Das echo-Kommando setzt den Status des Desktops auf "urgent" (englisch für dringend).
Ist natürlich nutzlos, wenns in ’ner screen-Session läuft, die gerade detached ist
Offline
Stimmt, aber in so einer Session habe ich das Kommando das ewig läuft ja auch im Blick
Offline
Na ich guck dem ja nicht die ganze Zeit zu
On-Topic: Zwar keine Funktion, sondern eher schon ein ausgewachsenes Script (das geht sicher auch kürzer bei selbem Ergebnis)
#!/bin/bash
# vim: ts=4:sw=4
# Printing all defined colors to terminal.
# Dirk Sohler
# spam@0x7be.de
# Enter your definitions file here
RES="${HOME}/.Xresources"
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
CLINES=$(grep "color[0-9]\{1,3\}:" "${RES}")
COUNT=$(grep "color[0-9]\{1,3\}:" "${RES}" | wc -l)
NLEN=$(echo -ne "${COUNT}" | wc -m)
ELEN=$(expr $(grep "color[0-9]\{1,3\}:" "${RES}" \
| head -n1\
| sed s/"\(.*color\)[0-9]\{1,3\}.*"/"\1"/g\
| wc -m) - 1 + ${NLEN})
VLEN=$(expr $(grep "color[0-9]\{1,3\}:" "${RES}"\
| head -n1\
|awk '{print $2}'\
| wc -m))
echo -ne "\n\e[1;4m "
printf %${NLEN}s " "
echo -ne " Example "
printf %-${ELEN}s "Entry"
echo -ne " "
printf %-${VLEN}s "Value"
echo -ne "\033[0m\n"
IFS=$(echo -ne "\n\b")
I=0
for C in ${CLINES}; do
I=$(expr $I + 1)
NUM=$(echo ${C} | sed s/".*color\([0-9]\{1,3\}\).*"/"\1"/g)
EXA=$(echo -e "\e[48;05;${NUM}m \e[0m")
NAM=$(echo ${C} | sed s/"\(.*color[0-9]\{1,3\}\).*"/"\1"/g)
STR=$(echo ${C} | awk '{print $2}')
LNUM=$(printf %${NLEN}d ${I})
LNAM=$(printf %-${ELEN}s ${NAM})
echo -e " ${LNUM} ${EXA} ${LNAM} ${STR}"
done
echo -ne "\n"
Gibt alle in der entsprechenden Datei angegebenen Farbdefinitionen aus, und ist dabei fähig, beliebig viele Definitionen auszugeben (wer in einem entsprechenden TErminal mehr als die üblichen 16 Farben definiert hat, bekommt die auch alle angezeigt.)
Zur Abstandsmessung wird die erste Farbdefinition hergenommen, wer also mehrere verschiedene Definitionen hat (urxvt*color, bliblablubb*color, etc.), bekommt zwar probleme mit den Abständen, aber ansonsten finde ich das schon sehr schick
Beitrag geändert von Dirk (13.02.2013 00:48:17)
Offline
Hallo,
mit LINES hast Du Dir eine Systemvariable neudefiniert.
Offline
mit LINES hast Du Dir eine Systemvariable neudefiniert.
Hab ich gar nichts von gemerkt, was macht die?
Na ja, ist jedenfalls angepasst, heißt jetzt CLINES
Offline
Gibt glaub ich die Anzahl der Zeilen in Deinem Terminalfenster an, oder irgendso was Aber die Ausgabe von Deinem Skript sieht sehr beeindruckend aus, das werde ich die Tage über mal genauer unter die Lupe nehmen.
Offline
LINES ist keine Systemvariable sondern eine bash-builtin Variable die aber nur in interaktiven Shells gesetzt ist, in Skripts ist sie nicht gesetzt. In interaktiven Shells gibt sie die Anzahl der Zeilen an die das Terminal hat.
Offline
Danke für die Verbesserung portix.
Offline
Ein Terminalfarbenskript habe ich auch mal geschrieben, anders als das Skript von Dirk parst es nicht .Xresources sondern zeigt bei Terminals die 256 Farben unterstützen die Farben an
#!/bin/bash
[ $1 ] && [ $1 -a 0 -le $1 -a $1 -le 255 ] && c=$1 || c=16
j=3; l=4;
for i in {0..255}; do
[ $i = 16 ] && k=0 && j=4 && l=3;
printf "\e[38;5;$c;48;5;%dm%-${j}d\e[0m\e[48;5;$c;38;5;%dm%-${j}d\e[0m" $i $i $i $i
[ $((++k%(2*l))) = 0 ] && printf "\n"
done
Beitrag geändert von portix (13.02.2013 01:26:24)
Offline
Auch nice!
Offline
Für welche Anwendungen verwendest Du diese Funktion?
Lass mich nachdenken ... Keine Ahnung ... Fand es einfach lustig^^
irgendwas das ewig dauert && say "Bearbeitung abgeschlossen"
… wäre eine Idee
Coole Idee
Eine Anmerkung hätte ich noch, ispeech klingt weitaus besser als Google:
http://api.ispeech.org/api/rest?apikey=YOURAPIKEY&voice=eurgermanfemale&action=convert&text=$1
(Keys findet man wunderbar in der Doku und auf stackoverflow ;D)
Beitrag geändert von elias (13.02.2013 20:37:54)
Offline
>>> grep -A3 Einträge der Historie ~/.zshrc.local
# Gibt von den letzten i Einträgen der Historie die aus, welche <Pattern1 oder Pattern2 oder ...> enthalten.
for i in {1..100} {200,250,300,400,500,1000,10000,$HISTSIZE}; do
h$i() { if [ $1 ]; then history -${0:1} | egrep $(echo $@ | tr -s ' ' '|'); else history -${0:1}; fi }
done; alias h="h$HISTSIZE"
z.B:
h100 ls echo # gibt von den letzten 100 Befehlen, diejenigen aus, die "ls" ODER "echo" enthalten.
h "vim.*.sh" # gibt von allen history-Eintägen diejenigen aus, die "vim" UND ".sh" enthalen und bei denen "vim" VOR ".sh" steht.
h250 "vim.*.sh|.sh.*vim" # gibt von den letzten 250 Einträgen der history diejenigen an, die "vim" und ".sh" in beliebiger Reihenfolge enthalten.
h5 # gibt die letzten fünf Einträge der Historie aus
Wer das Skript mit der bash nutzen mächte solte "-${0:1}" zu "${0:1}" abändern.
Offline
function media {
`adb shell input keyevent KEYCODE_HOME`
`adb shell input keyevent KEYCODE_MEDIA_$1:u`
}
Damit lassen sich "medien" auf Android steuern, wenn über ADB angeschlossen.
media next
z.B. skippt das aktuelle Lied.
Offline
Mal eine blöde Frage aber wo packt ihr die Funktion hin?
Z.B. deine ~/.bashrc
Offline
ich dachte ich bin auch geschickt und probiere es mal...
also habe ich mir dies geschrieben:
#compile c
function cc () {
x="$1"
gcc -o "${x%2}" "$1"
}
, was mir das gcc -o /.../test /.../test.c ersparen soll... nur leider tut es nicht so ganz was es soll. hat mal jemand kurz nen blick drauf?
Offline
function cc() {
gcc -o "${1%.c}" "$1"
}
Offline
dankeschön!
und noch einen:
#mount iso to /tmp/isoname an go to that dir
function isomount () {
mkdir -p /tmp/"$1"
sudo mount "$1" /tmp/"$1"
cd /tmp/"$1"
}
Beitrag geändert von a.r.v.i.s. (02.07.2013 16:02:33)
Offline
Erneutes verbinden einer Fritzbox:
#!/bin/bash
curl "http://fritz.box:49000/upnp/control/WANIPConn1" -H 'Content-Type: text/xml; charset="utf-8"' -H 'SoapAction: urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination' -d '<?xml version="1.0" encoding="utf-8"?> <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body> <u:ForceTermination xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" /> </s:Body> </s:Envelope>'
exit 0
Hierfür müssen lediglich die Statusinformationen -nicht die Sicherheitseinstellungen (Portfreigaben usw.)- der Box per UPNP aktiv sein.
Unitymed** hat auf mysteriöse Weise , eine Zwangstrennung die nur dann trennt, wenn gerade no-ip bzw. dyndns den Account als inaktiv gesperrt hat.
Wenn die Verbindung nicht so schnell wäre, wäre es nen KO. Kriterium, dass man über einen Monat die selbe IP-Adresse hat, aber mit dem Skript ists ja gelöst.
PS: Ist nicht aus meiner Feder, nur ein paar Anpassungen, aber nutze es quasi täglich.
Offline
int function random() {
return 4;
}
Offline
int function random() {
head -c 1 /dev/urandom|od -An -vtu1|tr -d ' '
}
Offline
Hier ist noch was Feines … Das Script generiert ein Vorschaubild von einer Schriftart. Wenn man das als Doppelklickaktion in seinem Dateimanager für application/x-font-* einstellt, bekommt man einen supersimplen Schriftartenbetrachter. Von Schriftarten-Verwaltungstools wimmelt es ja nur so in den Repos und im AUR, aber ein Programm, das einfach nur ganz stupide beim Doppelklick eine Vorschau anzeigt, habe ich trotz ausführlicher Recherche nicht gefunden …
#!/bin/bash
# vim: ts=4:sw=4
# ImageMagick based font preview
# Set default options
POINTSIZE="100"
FOREGROUND="#729fcf"
BACKGROUND="#2e3436"
DEFAULTFONT="DejaVu-Sans"
DISPLAYWITH="feh -" # Has to accept PNG content on STDIN
# Set characters to be displayed, separate by space. Don’t overdo it :)
CHARS="Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz 1 2 3 4 5 6 7 8 9 Ää Üü Öö - + ! ?"
# The font to be used. ${1} refers to the fist command line parameter.
FONT="${1}"
###########################################################################
FILL=$(echo $CHARS | wc -w | wc -m)
COUNTER=1
TEMPDIR="$(mktemp -d)"
for _C in ${CHARS}; do
_COUNTER=$(printf "%0${FILL}d" ${COUNTER})
convert \
-font "${FONT}" \
-pointsize "${POINTSIZE}" \
-fill "${FOREGROUND}" \
-background "${BACKGROUND}" \
label:"${_C}" \
"${TEMPDIR}/char_${_COUNTER}.png" \
2>/dev/null
let COUNTER=COUNTER+1
done
montage "${TEMPDIR}"/*.png \
-mode Concatenate \
-geometry '1x1+5+5<' \
-background "${FOREGROUND}" \
-fill "${BACKGROUND}" \
-bordercolor "${BACKGROUND}" \
-frame 1 \
png:- | ${DISPLAYWITH}
rm -r "${TEMPDIR}"
Die Ausgabe ist im Bezug auf die Farbgebung, die Schriftart für die Infos, und die Beispielanzeige (Text und Schriftgröße) frei Konfigurierbar.
… aber ich denke, so geht das auch
Offline
#
# ~/.bashrc
extract ()
{
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) rar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1;;
*.7z) 7z x $1 ;;
*.exe) 7z e $1 ;;
*) echo "'$1' cannot be extracted via ex()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
Sehr praktisch um schnell Archive zu entpacken.
Habe ich mal irgendwo gesehen und nur um *exe erweitert, da die Updates für meinen DVD-S Reciever nur im Exe-Format geliefert werden. Die entsprechenen Packer sollten natürlich installiert sein.
Aufruf :
extract Datei.Endung
Offline
Und du hast "$0: $1: Error. Please go away." mit "'$1' cannot be extracted via ex()" ersetzt.
Offline
Weiß nicht mehr ..Funktioniert trotzdem. Habe gerade versucht das Orginal zu finden, ohne Erfolg. Jedoch hier : wiki.archlinux.org in etwa das Gleiche, aber ohne *:Exe
Offline