Artikel mit Tag Client + top
Verwandte Tags
Keine verwandten Tags gefunden.
Eine einfach Möglichkeit um Shell Skripte zu überprüfen bietet
shellcheck.net an. Es lässt sich auch lokal installieren und liefert auch dort Informationen zu Bugs & Verbesserungen. Bei mir immer am Anfang einer Neuinstallation dabei
Installation unter debian :
apt-get install shellcheck
Es ist manchmal ganz interresant vorhandene Skript testen zu lassen. Unterstützt werden bash, ksh , sh (POSIX kompatibel) und zsh.
Shellcheck on Github
shellcheck - wiki - Fehlercodes
Man möchte in einem Python Script einen Key Event abfangen. Das geht recht gut über curses
Beispiel :
#!/usr/bin/env python
import curses
stdscr = curses.initscr()
curses.cbreak()
stdscr.keypad(1)
stdscr.addstr(0,10,"Hit 'q' to quit")
stdscr.refresh()
key = ''
while key != ord('q'):
key = stdscr.getch()
stdscr.addch(20,25,key)
stdscr.refresh()
if key == curses.KEY_UP:
stdscr.addstr(2, 20, "Up")
elif key == curses.KEY_DOWN:
stdscr.addstr(3, 20, "Down")
curses.endwin()
Hier gefunden :
stackoverflow.com - allyourcode
Referenz - Python 3.5 - curses
Alle Unterordner eines Ordners durchnummeriert anzeigen.
path=/home
array=()
while IFS= read -r -d $'\0'; do
array+=("$REPLY")
done < <(find ${path} -maxdepth 1 -type d ! -name '.*' ! -wholename ${path} -print0 )
cnt=1
for item in "${array[@]}"
do
echo "${cnt}) -> ${item}"
((cnt++))
done
Parameter sauber an Skript übergeben mit
getopts.
# definiere mögliche Parameter
# ------------------------------------------------
while getopts s:f:h opts; do
case ${opts} in
s) var1=${OPTARG} ;;
f) var2=${OPTARG} ;;
h) show_help ;;
esac
done
Erklärung :
In diesem Beispiel gibt es 3 Parameter s,f und h , wenn -s angegeben wird
muss ein Inhalt folgen. Also script.sh -s wirft den Fehler aus
Diese Option erfordert ein Argument -- s
das selbe würde auch auftreten wenn f ohne Inhalt angegeben wird. Das wird definiert indem bei getopts ein : hinter dem parameter steht (s:f:) bei h steht kein : hinter dem Buchstaben somit wird dieser Parameter leer aufgerufen also nur mit -h.
you want to know more :
mkssoftware.com docs getopts
wiki.bash-hackers.org - howto - getopts_tutorial
Wenn man den Pfad des Bash Skriptes ermitteln möchte das gerade gestartet ist reicht diese Variable
# eigener Pfad
basepath=$(dirname $(readlink -f ${0}))
Mit diesem Skript ist es möglich eine beliebige Quelle von Pulse Audio aufzuzeichnen.
Ich habe das Skript unter Linux Mint 18 erstellt und getestet.
Es müssen die vorbis-tools installiert sein dies kann so erledigt werden !
apt-get install vorbis-tools
Hier das Skript :
#!/bin/bash
RED=$(tput setaf 1)
YELLOW=$(tput setaf 3)
WHITE=$(tput setaf 7)
NORMAL=$(tput sgr0)
if [[ ${#} -lt 1 ]]
then
echo ""
echo ""
echo "${WHITE}Bitte den PulseAudio Index angeben !!"
count=$(pacmd list-sink-inputs | grep -E 'index:' | wc -l)
if (( $count > 0 ));then
echo "${YELLOW}_____________________________________________________________________"
echo ""
echo "Alle Pulseaudio Sinks werden angezeigt"
echo "_____________________________________________________________________${RED}"
echo ""
pacmd list-sink-inputs | grep -E 'index:|client:'
echo "${YELLOW}_____________________________________________________________________"
else
echo "${YELLOW}_____________________________________________________________________"
echo ""
echo " Wenn keine Musik läuft kann kein Sink ermittelt werden"
echo "_____________________________________________________________________${NORMAL}"
echo "Bitte Skript neu starten NACHDEM die Musik gestartet wurde !"
exit 1
fi
echo -n "Bitte den Index wählen : "
read inp0
INDEX=$inp0
else
INDEX=$1
fi
if [[ ${#} -lt 2 ]]
then
echo "${WHITE}Bitte den Zielpfad & Namen angeben OHNE LEERZEICHEN mit ogg am Ende !${NORMAL}"
read inp1
FILE="$inp1"
else
FILE="$2"
fi
pactl load-module module-null-sink sink_name=steam
pactl move-sink-input $INDEX steam
parec -d steam.monitor | oggenc -b 192 -o $FILE --raw -