W skrypcie poniżej - który zachęca użytkownika do potwierdzenia, że chce kontynuować uruchamianie potencjalnie złego skryptu - gdy użytkownik wejdzie Y
na monit - wyłamie się z case
bloku, ale zostanie ponownie wysłany z powrotem do while
pętli.
#! /bin/bash
set -e
echo
echo "bad install start"
echo "-----------------------------------------"
while true; do
read -p "this script will probably fail - do you want to run anyway?" yn
case $yn in
[Yy]*)
##### WHAT GOES HERE?? #####
;;
[Nn]*)
exit ;;
*)
echo "answer y or n" ;;
esac
echo "script has broken out of case back into while loop"
done
echo -e "\e[33m Installing bad packagename \e[0m"
apt-get install sdfsdfdfsd
echo "rest of script - will i keep running?"
Po n
wprowadzeniu skrypt istnieje całkowicie zgodnie z potrzebami. Chciałbym wiedzieć, jak to zrobić, aby po Y
wprowadzeniu skrypt wyłamał się zarówno z bloku while, jak case
i while, ale nie został całkowicie zamknięty. Czy jest coś, co mogę wstawić dla symbolu zastępczego („Co tu idzie?”), Aby to zrobić?
$TEST=1
powinno być TEST=1
, a twój skrypt prawdopodobnie będzie działał z tą zmianą.
[Yn]*)
; prawdopodobnie miałeś na myśli[Yy]*)
.