Enviado em 24/07/2019 - 09:11h
Bom dia/tarde/noite/madrugada!
Estou estudando Shell, e pegando vários scripts como base para montar um para meu uso. No caso seria um "Wizard" para criação/configuração de VM via linha de comando pelo virtualbox. Estou pegando como base este que achei aqui
https://www.vivaolinux.com.br/script/Administracao-de-VirtualBox-com-ShellScript,
mas estou mudando várias coisas. Por exemplo o processo de seleção do tipo de OS, usei como base um array encontrado no instalador do Pi-Hole. Mas como funciona? Segue abaixo:
Algumas coisas eu sei, como a váriavel, o loop for, para que serve o IFS (mais ou menos). Se alguem puder me explicar ficaria muito grato!
Estou estudando Shell, e pegando vários scripts como base para montar um para meu uso. No caso seria um "Wizard" para criação/configuração de VM via linha de comando pelo virtualbox. Estou pegando como base este que achei aqui
https://www.vivaolinux.com.br/script/Administracao-de-VirtualBox-com-ShellScript,
mas estou mudando várias coisas. Por exemplo o processo de seleção do tipo de OS, usei como base um array encontrado no instalador do Pi-Hole. Mas como funciona? Segue abaixo:
Algumas coisas eu sei, como a váriavel, o loop for, para que serve o IFS (mais ou menos). Se alguem puder me explicar ficaria muito grato!
OSChooseOptions=()
local OSServerCount=0
# Save the old Internal Field Separator in a variable
OIFS=$IFS
# and set the new one to newline
IFS=$'\n'
# Put the DNS Servers into an array
for OS in ${OSTYPE}
do
TYPE="$(cut -d':' -f2 <<< "${OS}")"
OSChooseOptions[OSServerCount]="${TYPE}"
(( OSServerCount=OSServerCount+1 ))
OSChooseOptions[OSServerCount]=""
(( OSServerCount=OSServerCount+1 ))
done
OSChooseOptions[OSServerCount]="Custom"
(( OSServerCount=OSServerCount+1 ))
OSChooseOptions[OSServerCount]=""
# Restore the IFS to what it was
IFS=${OIFS}
# In a whiptail dialog, show the options
OSchoices=$(whiptail --separate-output --menu "Selecione o Tipo de OS." ${r} ${c}$
"${OSChooseOptions[@]}" 2>&1 >/dev/tty) || \
# exit if Cancel is selected
{ printf " %bCancel was selected, exiting installer%b\\n" ; exit 1; }