Existe alguma maneira de eu passar por uma parte específica de um script até que uma variável específica seja definida?
O que quero dizer com isto é que tenho algo assim:
#!/bin/bash
# Check if sudo
if [ $UID -ne 0 ]; then
echo "You have to run this as sudo" 1>&2
exit 1
fi
# Get the date for the check
read -p "Please input a date, format 'Jan 12': " chosendate
# Get the time for the check
read -p "Please input the time, format '13:55', leave blank for no time: " chosentime
# Get last results based on input
gotresults=$(last |grep "$chosendate $chosentime" |awk '{print $1" " $5" " $6" " $7" " $9}')
if [[ $(echo "$gotresults"|wc -l) -ne 1 ]]; then
echo "There are multiple entries corresponding to your input"
echo
echo "$gotresults"
echo
read -p "Please select which entry you desire by typing in the time: " chosentime
echo "$gotresults" |grep $chosentime
else
echo "$gotresults"
fi
Eu quero substituir isso com algo assim:
#!/bin/bash
# Check if sudo
if [ $UID -ne 0 ]; then
echo "You have to run this as sudo" 1>&2
exit 1
fi
**FLAG1**
# Get the date for the check
read -p "Please input a date, format 'Jan 12': " chosendate
# Get the time for the check
read -p "Please input the time, format '13:55', leave blank for no time: " chosentime
# Get last results based on input
gotresults=$(last |grep "$chosendate $chosentime" |awk '{print $1" " $5" " $6" " $7" " $9}')
if [[ $(echo "$gotresults"|wc -l) -ne 1 ]]; then
echo "There are multiple entries corresponding to your input"
echo
echo "$gotresults"
echo
echo "Please select a date/time that only returns one value"
**GO TO FLAG1**
else
echo "$gotresults"
fi
Dessa forma, eu poderia percorrer essa parte (ler a entrada do usuário e depois fazer a operação) até que, com base na entrada do usuário, haja apenas um valor retornado.
Acho que isso é possível com um loop "for", mas eu acharia mais fácil se isso existisse (acho que esse sistema foi implementado em algum tipo de programa que eu usei).
A razão pela qual eu preferiria o sistema FLAG e GO TO FLAG que eu mencionei, é porque eu poderia voltar a uma flag sempre que eu quisesse através do script, e eu teria maior controle sobre o fluxo do script.
Então, eu poderia ter FLAG1 em algum lugar e, em seguida, ir para FLAG1 em várias partes do meu script, não apenas um, o que seria difícil de fazer com loops for.