shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Help! case dentro de for


From: phfbettega
Subject: Re: [shell-script] Help! case dentro de for
Date: Sun, 4 Oct 2015 12:30:35 -0300
User-agent: Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

Olá Hugo, se entendi direito vc quer fazer um menu com as vms. O comando select
faz o serviço todo e monta o menu.
O select é interativo, não sei como responder automaticamente.

select maqvirt in $(vboxmanage list vms|awk '{print $1}');do
        echo vboxmanage startvm $maqvirt --type headless
        break
done

Pra fazer o menu com case teria que fazer um case "dinâmico" já que os itens do
menu podem variar
http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo010#O_comando_eval


Pra passar a vm como parâmetro poderia ser assim.
O grep tem que casar o nome todo e não apenas uma parte.

if grep -qw "$1" <<<"$(vboxmanage list vms|awk '{print $1}')"; then
        echo vboxmanage startvm "$1" --type headless
else
        echo vm $1 não existe
fi

Abraços Paulo Bettega

ps- valeu pelo vboxmanage, hand on the wheel :) não conhecia.

On 04-10-2015 02:59, Hugo Meireles address@hidden [shell-script] wrote:
Olá mestres. Boa noite a todos.
Esse é meu primeiro post e o primeiro script q possa de fato ser considerado um 
script...,
e gostaria de um help já que estou a quase 5 horas quebrando a cabeça.
A ideia é criar um menu onde eu possa escolher a VM que vai iniciar em 
background....
O intuito é aprender shell script e lógiva também, por isso dificultei logo no 
primeiro
exercicio... rs

#!/bin/bash
nomevm=''
totalvms=`vboxmanage list vms|wc -l`
for vms in $(vboxmanage list vms|sort|awk '{ print $1 }')
do
export nomevm=$nomevm:$vms
done
for menu in $(seq 1 $totalvms)
do
case $nomevm in
"`$nomevm|cut -d: -f$menu`")
vboxmanage startvm $nomevm --type headless
"`;;`"
done
*)
echo "Use iniciavm nome_da_vm"
esac
exit 0


O erro está aqui:

./iniciavm.sh: line 14: syntax error near unexpected token `done'
./iniciavm.sh: line 14: `done'


Não sei se é o case dentro do for ou se é alguma aspas faltando... sei que tem 
algo com o
;; mas travou geral aqui....
Agradeço antecipadamente.
Att,
_________
_____________________________________

Hugo Meireles
E-mail: address@hidden <mailto:address@hidden>
Celular:   55 11 991047093
_____________________________________


------------------------------------------------------------------------------------------
Enviado por: Hugo Meireles <address@hidden>
------------------------------------------------------------------------------------------


reply via email to

[Prev in Thread] Current Thread [Next in Thread]