Salute,
ich habe zwei verschiedene shell-scripte, das eine ersetzt global die (m.E. ziemlich hässlichen) Amarok-Icons, das andere für verschiedene "Aufräumoptionen" durch. In beiden möchte ich eine Operation nur durchführen, wenn der User sie erlaubt, dabei kommt es zu einer Fehlermeldung.
Im "Amarok"-Script funktioniert dieser aufrauf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | echo -e $RED"Wollen sie das Arbeitsverzeichnis $(pwd) löschen? (y/n)"$ENDCOLOR read -s -n 1 INPUT case ${INPUT} in [yYjJ] ) echo "Das Verzeichnis $(pwd) wird rekursiv gelöscht" rm -r $(pwd) sleep 2 ;; * ) echo "Verzeichnis $(pwd) wird nicht gelöscht" sleep 2 # clear ;; esac |
Im "ubucleaner" Script möchte ich, unter andere, die alten Kernel löschen:
1 | CURKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g') |
und
1 | OLDKERNELS=$(dpkg -l|awk '{print $2}'|grep -E $LINUXPKG |grep -vE $METALINUXPKG|grep -v $CURKERNEL) |
Wenn ich in diesem Script den read aufrauf auch mit -s -n 1 mache:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | echo $BLUE"Purge old Kernel: $OLDKERNELS (current kernel:$CURKERNEL) (y/n)?"$ENDCOLOR read -s -n 1 INPUT case ${INPUT} in [yYjJ] ) echo $BLUE"Removing old kernels..."$ENDCOLOR sudo apt-get purge $OLDKERNELS sleep 1 ;; * ) echo "Not doing anything" sleep 1 # clear ;; esac |
erhalte ich den Hinweise
1 | read: 24: Illegal option -n |
- hat jemand eine Idee, woran das liegt? Wenn ich es ohne -s und -n 1 aufrufe funktioniert es (den Befehl habe ich aus dem amarok-script kopiert) ?
Vielen Dank,
KS
-edit-
ein ganz ähnliches Problem habe ich mit dem "echo", im amarok-script habe ich echo -e, im ubucleaner geht -e nicht. Kann das daran liegen, dass ich das eine script direkt aufrufe, das andere aber über einen alias in der .bashrc?