Script para instalação da multilib no slackware.

1. Script para instalação da multilib no slackware.

João Fragoso
Göetia_0xFF

(usa Slackware)

Enviado em 25/03/2019 - 19:03h

Não posso salvar isso aqui no pc do curso, logo, quero eternizar esse script por aqui.


#!/bin/bash
#Coding:joão fragoso
#Instala a multilib no slackware

function Instalar_multilib(){
URL="http://www.slackware.com/"
DIRETORIO_REMOTO="~alien/multilib/"
REGEX=( '[0-9]+SBo' '[0-9]+alien' '[0-9]+multilib' )

DIR="LIB32"
GET_FILES=$(which lftp)
PKG=$(which slackpkg)
UPG_PKG=$(which upgradepkg)
TEMPO=$(which sleep)
REBOOT=$(which reboot)
USUARIO_ATIVO=1
BLACKLIST="/etc/slackpkg/blacklist"
VERSAO_SLACKWARE=$VERSAO

mkdir $DIR
cd $DIR

case ${UID} in
0)
printf "[+] Criando blacklist em $BLACKLIST"

for (( count=0;count!=3;count++ )); do
echo "${REGEX[$count]}" >> "$BLACKLIST";
done
;;
*)
echo "[-] Retorne como root [-]" && exit;
;;
esac

if [ echo $($GET_FILES -d -c " open $URL; cd $DIRETORIO_REMOTO$VERSAO_SLACKWARE; mget * ") ]; then
$UPG_PKG --reinstall --install-new *.t?z;
fi

echo
echo "[+] PREPARANDO PARA O REBOOT [+]"
echo

for (( x=0;x<2;x++ )); do
printf '.';
$TEMPO 1
done

cd ../
rm -rf $DIR

if [ ${UID} -eq 0 ]; then
while [ $USUARIO_ATIVO ]; do
$REBOOT;
done

else {
`su -c 'reboot'`
}

fi
}

printf "[+] Instalar multilib ?(Y/N):"
read -t 20 INSTALAR_MULTILIB || INSTALAR_MULTILIB="Y"

if [ "$INSTALAR_MULTILIB" = 'Y' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
printf "Versao do slackware(ex:14.2):" && read -t 20 VERSAO || VERSAO="14.2"
Instalar_multilib $VERSAO

elif [ "$INSTALAR_MUTILIB" = 'N' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
exit
fi




  


2. Re: Script para instalação da multilib no slackware.

Matheus
pylm

(usa Gentoo)

Enviado em 25/03/2019 - 19:53h

Pastebin, manja? Serve justamente pra isso.



3. Re: Script para instalação da multilib no slackware.

João Fragoso
Göetia_0xFF

(usa Slackware)

Enviado em 26/03/2019 - 03:25h

pylm escreveu:

Pastebin, manja? Serve justamente pra isso.


Manjo sim, ao mesmo tempo pensei em compartilhar com todo mundo aqui.


4. Re: Script para instalação da multilib no slackware.

Xerxes
xerxeslins

(usa BigLinux)

Enviado em 26/03/2019 - 10:08h


legal!

Além de deixar aqui, pode enviar para a sessão de scripts:

https://www.vivaolinux.com.br/contribuir/scripts/

--
"There are lots of Linux users who don't care how the kernel works, but only want to use it. That is a tribute to how good Linux is." - Linus Torvalds



5. Re: Script para instalação da multilib no slackware.

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 27/03/2019 - 00:17h


Göetia_0xFF escreveu:

Não posso salvar isso aqui no pc do curso, logo, quero eternizar esse script por aqui.


#!/bin/bash
#Coding:joão fragoso
#Instala a multilib no slackware

function Instalar_multilib(){
URL="http://www.slackware.com/"
DIRETORIO_REMOTO="~alien/multilib/"
REGEX=( '[0-9]+SBo' '[0-9]+alien' '[0-9]+multilib' )

DIR="LIB32"
GET_FILES=$(which lftp)
PKG=$(which slackpkg)
UPG_PKG=$(which upgradepkg)
TEMPO=$(which sleep)
REBOOT=$(which reboot)
USUARIO_ATIVO=1
BLACKLIST="/etc/slackpkg/blacklist"
VERSAO_SLACKWARE=$VERSAO

mkdir $DIR
cd $DIR

case ${UID} in
0)
printf "[+] Criando blacklist em $BLACKLIST"

for (( count=0;count!=3;count++ )); do
echo "${REGEX[$count]}" >> "$BLACKLIST";
done
;;
*)
echo "[-] Retorne como root [-]" && exit;
;;
esac

if [ echo $($GET_FILES -d -c " open $URL; cd $DIRETORIO_REMOTO$VERSAO_SLACKWARE; mget * ") ]; then
$UPG_PKG --reinstall --install-new *.t?z;
fi

echo
echo "[+] PREPARANDO PARA O REBOOT [+]"
echo

for (( x=0;x<2;x++ )); do
printf '.';
$TEMPO 1
done

cd ../
rm -rf $DIR

if [ ${UID} -eq 0 ]; then
while [ $USUARIO_ATIVO ]; do
$REBOOT;
done

else {
`su -c 'reboot'`
}

fi
}

printf "[+] Instalar multilib ?(Y/N):"
read -t 20 INSTALAR_MULTILIB || INSTALAR_MULTILIB="Y"

if [ "$INSTALAR_MULTILIB" = 'Y' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
printf "Versao do slackware(ex:14.2):" && read -t 20 VERSAO || VERSAO="14.2"
Instalar_multilib $VERSAO

elif [ "$INSTALAR_MUTILIB" = 'N' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
exit
fi


Boa noite....
Sei que o script é seu, e vc faz como quiser.... Rsrsrs
Mas, sugiro umas melhorias....
Seguem:

#!/bin/bash
#Coding:joão fragoso
#Instala a multilib no slackware

function Instalar_multilib(){
URL="http://www.slackware.com/"
DIRETORIO_REMOTO="~alien/multilib/"
REGEX=( '[0-9]+SBo' '[0-9]+alien' '[0-9]+multilib' )

DIR="LIB32"
GET_FILES=$(which lftp)
PKG=$(which slackpkg)
UPG_PKG=$(which upgradepkg)
TEMPO=$(which sleep)
REBOOT=$(which reboot)
USUARIO_ATIVO=1
BLACKLIST="/etc/slackpkg/blacklist"
VERSAO_SLACKWARE=$VERSAO

mkdir $DIR
cd $DIR

case ${UID} in
0)
printf "[+] Criando blacklist em $BLACKLIST"
for (( count=0;count!=3;count++ )); do
echo "${REGEX[$count]}" >> "$BLACKLIST";
done
;;
*)
echo "[-] Retorne como root [-]" && exit;
;;
esac

if [ echo $($GET_FILES -d -c " open $URL; cd $DIRETORIO_REMOTO$VERSAO_SLACKWARE; mget * ") ]; then
$UPG_PKG --reinstall --install-new *.t?z;
fi

echo
echo "[+] PREPARANDO PARA O REBOOT [+]"
echo

for (( x=0;x<2;x++ )); do
printf '.';
$TEMPO 1
done

cd ../
rm -rf $DIR

if [ ${UID} -eq 0 ]; then
#Não entendi o laço abaixo.... Se é root, REBOOT... É isso?
#BASTARIA:
[ ${UID} -eq 0 ] && $REBOOT || `su -c 'reboot'`
#O que é desnecessário, já que tem uma "case" logo acima, obrigando a executar o script como root
#O teste do root, poderia ficar logo no inicio.... Antes da declaração das variáveis e criação de diretório....
while [ $USUARIO_ATIVO ]; do
$REBOOT;
done

else {
`su -c 'reboot'`
}

fi
}

#printf "[+] Instalar multilib ?(Y/N):"
#read -t 20 INSTALAR_MULTILIB || INSTALAR_MULTILIB="Y"
#Utilizei o "-p" do read, no lugar do printf acima
read -n1 -t20 -p "[+] Instalar multilib ?(Y/N): " || REPLY="Y"
#O teste abaixo, testa se é Y ou y
if [[ $REPLY =~ [Yy]$ ]];then
...
else
...
fi

#if [ "$INSTALAR_MULTILIB" = 'Y' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
# printf "Versao do slackware(ex:14.2):" && read -t 20 VERSAO || VERSAO="14.2"
# Instalar_multilib $VERSAO
#
#elif [ "$INSTALAR_MUTILIB" = 'N' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
#exit
#fi


OBS: Entenda como "critica construtiva", para aprimorar o seu trabalho....

VEJA => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


6. Re: Script para instalação da multilib no slackware.

Matheus
pylm

(usa Gentoo)

Enviado em 27/03/2019 - 17:30h


Göetia_0xFF escreveu:

pylm escreveu:

Pastebin, manja? Serve justamente pra isso.


Manjo sim, ao mesmo tempo pensei em compartilhar com todo mundo aqui.


Daí cê manda pra área de script.


7. Re: Script para instalação da multilib no slackware.

João Fragoso
Göetia_0xFF

(usa Slackware)

Enviado em 27/03/2019 - 17:58h

xerxeslins escreveu:


legal!

Além de deixar aqui, pode enviar para a sessão de scripts:

https://www.vivaolinux.com.br/contribuir/scripts/

--
"There are lots of Linux users who don't care how the kernel works, but only want to use it. That is a tribute to how good Linux is." - Linus Torvalds


Já mandei, esperando aceitarem.




8. Re: Script para instalação da multilib no slackware.

João Fragoso
Göetia_0xFF

(usa Slackware)

Enviado em 27/03/2019 - 18:02h

msoliver escreveu:


Göetia_0xFF escreveu:

Não posso salvar isso aqui no pc do curso, logo, quero eternizar esse script por aqui.


#!/bin/bash
#Coding:joão fragoso
#Instala a multilib no slackware

function Instalar_multilib(){
URL="http://www.slackware.com/"
DIRETORIO_REMOTO="~alien/multilib/"
REGEX=( '[0-9]+SBo' '[0-9]+alien' '[0-9]+multilib' )

DIR="LIB32"
GET_FILES=$(which lftp)
PKG=$(which slackpkg)
UPG_PKG=$(which upgradepkg)
TEMPO=$(which sleep)
REBOOT=$(which reboot)
USUARIO_ATIVO=1
BLACKLIST="/etc/slackpkg/blacklist"
VERSAO_SLACKWARE=$VERSAO

mkdir $DIR
cd $DIR

case ${UID} in
0)
printf "[+] Criando blacklist em $BLACKLIST"

for (( count=0;count!=3;count++ )); do
echo "${REGEX[$count]}" >> "$BLACKLIST";
done
;;
*)
echo "[-] Retorne como root [-]" && exit;
;;
esac

if [ echo $($GET_FILES -d -c " open $URL; cd $DIRETORIO_REMOTO$VERSAO_SLACKWARE; mget * ") ]; then
$UPG_PKG --reinstall --install-new *.t?z;
fi

echo
echo "[+] PREPARANDO PARA O REBOOT [+]"
echo

for (( x=0;x<2;x++ )); do
printf '.';
$TEMPO 1
done

cd ../
rm -rf $DIR

if [ ${UID} -eq 0 ]; then
while [ $USUARIO_ATIVO ]; do
$REBOOT;
done

else {
`su -c 'reboot'`
}

fi
}

printf "[+] Instalar multilib ?(Y/N):"
read -t 20 INSTALAR_MULTILIB || INSTALAR_MULTILIB="Y"

if [ "$INSTALAR_MULTILIB" = 'Y' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
printf "Versao do slackware(ex:14.2):" && read -t 20 VERSAO || VERSAO="14.2"
Instalar_multilib $VERSAO

elif [ "$INSTALAR_MUTILIB" = 'N' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
exit
fi


Boa noite....
Sei que o script é seu, e vc faz como quiser.... Rsrsrs
Mas, sugiro umas melhorias....
Seguem:

#!/bin/bash
#Coding:joão fragoso
#Instala a multilib no slackware

function Instalar_multilib(){
URL="http://www.slackware.com/"
DIRETORIO_REMOTO="~alien/multilib/"
REGEX=( '[0-9]+SBo' '[0-9]+alien' '[0-9]+multilib' )

DIR="LIB32"
GET_FILES=$(which lftp)
PKG=$(which slackpkg)
UPG_PKG=$(which upgradepkg)
TEMPO=$(which sleep)
REBOOT=$(which reboot)
USUARIO_ATIVO=1
BLACKLIST="/etc/slackpkg/blacklist"
VERSAO_SLACKWARE=$VERSAO

mkdir $DIR
cd $DIR

case ${UID} in
0)
printf "[+] Criando blacklist em $BLACKLIST"
for (( count=0;count!=3;count++ )); do
echo "${REGEX[$count]}" >> "$BLACKLIST";
done
;;
*)
echo "[-] Retorne como root [-]" && exit;
;;
esac

if [ echo $($GET_FILES -d -c " open $URL; cd $DIRETORIO_REMOTO$VERSAO_SLACKWARE; mget * ") ]; then
$UPG_PKG --reinstall --install-new *.t?z;
fi

echo
echo "[+] PREPARANDO PARA O REBOOT [+]"
echo

for (( x=0;x<2;x++ )); do
printf '.';
$TEMPO 1
done

cd ../
rm -rf $DIR

if [ ${UID} -eq 0 ]; then
#Não entendi o laço abaixo.... Se é root, REBOOT... É isso?
#BASTARIA:
[ ${UID} -eq 0 ] && $REBOOT || `su -c 'reboot'`
#O que é desnecessário, já que tem uma "case" logo acima, obrigando a executar o script como root
#O teste do root, poderia ficar logo no inicio.... Antes da declaração das variáveis e criação de diretório....
while [ $USUARIO_ATIVO ]; do
$REBOOT;
done

else {
`su -c 'reboot'`
}

fi
}

#printf "[+] Instalar multilib ?(Y/N):"
#read -t 20 INSTALAR_MULTILIB || INSTALAR_MULTILIB="Y"
#Utilizei o "-p" do read, no lugar do printf acima
read -n1 -t20 -p "[+] Instalar multilib ?(Y/N): " || REPLY="Y"
#O teste abaixo, testa se é Y ou y
if [[ $REPLY =~ [Yy]$ ]];then
...
else
...
fi

#if [ "$INSTALAR_MULTILIB" = 'Y' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
# printf "Versao do slackware(ex:14.2):" && read -t 20 VERSAO || VERSAO="14.2"
# Instalar_multilib $VERSAO
#
#elif [ "$INSTALAR_MUTILIB" = 'N' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
#exit
#fi


OBS: Entenda como "critica construtiva", para aprimorar o seu trabalho....

VEJA => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


Top cara! Mandei para Área de scripts com créditos a você como contribuidor.




9. Re: Script para instalação da multilib no slackware.

João Fragoso
Göetia_0xFF

(usa Slackware)

Enviado em 27/03/2019 - 18:04h

pylm escreveu:


Göetia_0xFF escreveu:

pylm escreveu:

Pastebin, manja? Serve justamente pra isso.


Manjo sim, ao mesmo tempo pensei em compartilhar com todo mundo aqui.


Daí cê manda pra área de script.


Espero que aceitem essa gambiarra ai, kkk.




10. Re: Script para instalação da multilib no slackware.

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 27/03/2019 - 20:24h


Göetia_0xFF escreveu:

msoliver escreveu:


Göetia_0xFF escreveu:

Não posso salvar isso aqui no pc do curso, logo, quero eternizar esse script por aqui.


#!/bin/bash
#Coding:joão fragoso
#Instala a multilib no slackware

function Instalar_multilib(){
URL="http://www.slackware.com/"
DIRETORIO_REMOTO="~alien/multilib/"
REGEX=( '[0-9]+SBo' '[0-9]+alien' '[0-9]+multilib' )

DIR="LIB32"
GET_FILES=$(which lftp)
PKG=$(which slackpkg)
UPG_PKG=$(which upgradepkg)
TEMPO=$(which sleep)
REBOOT=$(which reboot)
USUARIO_ATIVO=1
BLACKLIST="/etc/slackpkg/blacklist"
VERSAO_SLACKWARE=$VERSAO

mkdir $DIR
cd $DIR

case ${UID} in
0)
printf "[+] Criando blacklist em $BLACKLIST"

for (( count=0;count!=3;count++ )); do
echo "${REGEX[$count]}" >> "$BLACKLIST";
done
;;
*)
echo "[-] Retorne como root [-]" && exit;
;;
esac

if [ echo $($GET_FILES -d -c " open $URL; cd $DIRETORIO_REMOTO$VERSAO_SLACKWARE; mget * ") ]; then
$UPG_PKG --reinstall --install-new *.t?z;
fi

echo
echo "[+] PREPARANDO PARA O REBOOT [+]"
echo

for (( x=0;x<2;x++ )); do
printf '.';
$TEMPO 1
done

cd ../
rm -rf $DIR

if [ ${UID} -eq 0 ]; then
while [ $USUARIO_ATIVO ]; do
$REBOOT;
done

else {
`su -c 'reboot'`
}

fi
}

printf "[+] Instalar multilib ?(Y/N):"
read -t 20 INSTALAR_MULTILIB || INSTALAR_MULTILIB="Y"

if [ "$INSTALAR_MULTILIB" = 'Y' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
printf "Versao do slackware(ex:14.2):" && read -t 20 VERSAO || VERSAO="14.2"
Instalar_multilib $VERSAO

elif [ "$INSTALAR_MUTILIB" = 'N' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
exit
fi


Boa noite....
Sei que o script é seu, e vc faz como quiser.... Rsrsrs
Mas, sugiro umas melhorias....
Seguem:

#!/bin/bash
#Coding:joão fragoso
#Instala a multilib no slackware

function Instalar_multilib(){
URL="http://www.slackware.com/"
DIRETORIO_REMOTO="~alien/multilib/"
REGEX=( '[0-9]+SBo' '[0-9]+alien' '[0-9]+multilib' )

DIR="LIB32"
GET_FILES=$(which lftp)
PKG=$(which slackpkg)
UPG_PKG=$(which upgradepkg)
TEMPO=$(which sleep)
REBOOT=$(which reboot)
USUARIO_ATIVO=1
BLACKLIST="/etc/slackpkg/blacklist"
VERSAO_SLACKWARE=$VERSAO

mkdir $DIR
cd $DIR

case ${UID} in
0)
printf "[+] Criando blacklist em $BLACKLIST"
for (( count=0;count!=3;count++ )); do
echo "${REGEX[$count]}" >> "$BLACKLIST";
done
;;
*)
echo "[-] Retorne como root [-]" && exit;
;;
esac

if [ echo $($GET_FILES -d -c " open $URL; cd $DIRETORIO_REMOTO$VERSAO_SLACKWARE; mget * ") ]; then
$UPG_PKG --reinstall --install-new *.t?z;
fi

echo
echo "[+] PREPARANDO PARA O REBOOT [+]"
echo

for (( x=0;x<2;x++ )); do
printf '.';
$TEMPO 1
done

cd ../
rm -rf $DIR

if [ ${UID} -eq 0 ]; then
#Não entendi o laço abaixo.... Se é root, REBOOT... É isso?
#BASTARIA:
[ ${UID} -eq 0 ] && $REBOOT || `su -c 'reboot'`
#O que é desnecessário, já que tem uma "case" logo acima, obrigando a executar o script como root
#O teste do root, poderia ficar logo no inicio.... Antes da declaração das variáveis e criação de diretório....
while [ $USUARIO_ATIVO ]; do
$REBOOT;
done

else {
`su -c 'reboot'`
}

fi
}

#printf "[+] Instalar multilib ?(Y/N):"
#read -t 20 INSTALAR_MULTILIB || INSTALAR_MULTILIB="Y"
#Utilizei o "-p" do read, no lugar do printf acima
read -n1 -t20 -p "[+] Instalar multilib ?(Y/N): " || REPLY="Y"
#O teste abaixo, testa se é Y ou y
if [[ $REPLY =~ [Yy]$ ]];then
...
else
...
fi

#if [ "$INSTALAR_MULTILIB" = 'Y' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
# printf "Versao do slackware(ex:14.2):" && read -t 20 VERSAO || VERSAO="14.2"
# Instalar_multilib $VERSAO
#
#elif [ "$INSTALAR_MUTILIB" = 'N' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
#exit
#fi


OBS: Entenda como "critica construtiva", para aprimorar o seu trabalho....

VEJA => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


Top cara! Mandei para Área de scripts com créditos a você como contribuidor.


Boa noite Göetia_0xFF.
Verificando agora, notei um detalhe:
Na linha 69, do seu script original, a função é chamada com um argumento...
Instalar_multilib $VERSAO #linha 69
Logo, a linha 18:
VERSAO_SLACKWARE=$VERSAO
Deveria ser:
VERSAO_SLACKWARE=$1

Ainda no seu script original:
A REGEX "REGEX=( '[0-9]+SBo' '[0-9]+alien' '[0-9]+multilib' )"
e o laço:
for (( count=0;count!=3;count++ )); do
echo "${REGEX[$count]}" >> "$BLACKLIST";
done

Podem ser substituídos por:
echo '[0-9]+'{SBo,alien,multilib}|tr ' ' '\n'  >> "$BLACKLIST" 


O comando:
$GET_FILES -d -c " open $URL; cd $DIRETORIO_REMOTO$VERSAO_SLACKWARE; mget *
Baixa todos arquivos do referido diretório?
E instala os que terminam com t?z?
$UPG_PKG --reinstall --install-new *.t?z;
É isso... ?

Não é necessário me citar como contribuidor...
A minha intenção é melhorar o seu script...
Troco a citação pela escolha da MELHOR RESPOSTA..... Rsrsrsrsr
VEJA => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


11. Re: Script para instalação da multilib no slackware.

João Fragoso
Göetia_0xFF

(usa Slackware)

Enviado em 27/03/2019 - 20:55h

msoliver escreveu:


Göetia_0xFF escreveu:

msoliver escreveu:


Göetia_0xFF escreveu:

Não posso salvar isso aqui no pc do curso, logo, quero eternizar esse script por aqui.


#!/bin/bash
#Coding:joão fragoso
#Instala a multilib no slackware

function Instalar_multilib(){
URL="http://www.slackware.com/"
DIRETORIO_REMOTO="~alien/multilib/"
REGEX=( '[0-9]+SBo' '[0-9]+alien' '[0-9]+multilib' )

DIR="LIB32"
GET_FILES=$(which lftp)
PKG=$(which slackpkg)
UPG_PKG=$(which upgradepkg)
TEMPO=$(which sleep)
REBOOT=$(which reboot)
USUARIO_ATIVO=1
BLACKLIST="/etc/slackpkg/blacklist"
VERSAO_SLACKWARE=$VERSAO

mkdir $DIR
cd $DIR

case ${UID} in
0)
printf "[+] Criando blacklist em $BLACKLIST"

for (( count=0;count!=3;count++ )); do
echo "${REGEX[$count]}" >> "$BLACKLIST";
done
;;
*)
echo "[-] Retorne como root [-]" && exit;
;;
esac

if [ echo $($GET_FILES -d -c " open $URL; cd $DIRETORIO_REMOTO$VERSAO_SLACKWARE; mget * ") ]; then
$UPG_PKG --reinstall --install-new *.t?z;
fi

echo
echo "[+] PREPARANDO PARA O REBOOT [+]"
echo

for (( x=0;x<2;x++ )); do
printf '.';
$TEMPO 1
done

cd ../
rm -rf $DIR

if [ ${UID} -eq 0 ]; then
while [ $USUARIO_ATIVO ]; do
$REBOOT;
done

else {
`su -c 'reboot'`
}

fi
}

printf "[+] Instalar multilib ?(Y/N):"
read -t 20 INSTALAR_MULTILIB || INSTALAR_MULTILIB="Y"

if [ "$INSTALAR_MULTILIB" = 'Y' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
printf "Versao do slackware(ex:14.2):" && read -t 20 VERSAO || VERSAO="14.2"
Instalar_multilib $VERSAO

elif [ "$INSTALAR_MUTILIB" = 'N' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
exit
fi


Boa noite....
Sei que o script é seu, e vc faz como quiser.... Rsrsrs
Mas, sugiro umas melhorias....
Seguem:

#!/bin/bash
#Coding:joão fragoso
#Instala a multilib no slackware

function Instalar_multilib(){
URL="http://www.slackware.com/"
DIRETORIO_REMOTO="~alien/multilib/"
REGEX=( '[0-9]+SBo' '[0-9]+alien' '[0-9]+multilib' )

DIR="LIB32"
GET_FILES=$(which lftp)
PKG=$(which slackpkg)
UPG_PKG=$(which upgradepkg)
TEMPO=$(which sleep)
REBOOT=$(which reboot)
USUARIO_ATIVO=1
BLACKLIST="/etc/slackpkg/blacklist"
VERSAO_SLACKWARE=$VERSAO

mkdir $DIR
cd $DIR

case ${UID} in
0)
printf "[+] Criando blacklist em $BLACKLIST"
for (( count=0;count!=3;count++ )); do
echo "${REGEX[$count]}" >> "$BLACKLIST";
done
;;
*)
echo "[-] Retorne como root [-]" && exit;
;;
esac

if [ echo $($GET_FILES -d -c " open $URL; cd $DIRETORIO_REMOTO$VERSAO_SLACKWARE; mget * ") ]; then
$UPG_PKG --reinstall --install-new *.t?z;
fi

echo
echo "[+] PREPARANDO PARA O REBOOT [+]"
echo

for (( x=0;x<2;x++ )); do
printf '.';
$TEMPO 1
done

cd ../
rm -rf $DIR

if [ ${UID} -eq 0 ]; then
#Não entendi o laço abaixo.... Se é root, REBOOT... É isso?
#BASTARIA:
[ ${UID} -eq 0 ] && $REBOOT || `su -c 'reboot'`
#O que é desnecessário, já que tem uma "case" logo acima, obrigando a executar o script como root
#O teste do root, poderia ficar logo no inicio.... Antes da declaração das variáveis e criação de diretório....
while [ $USUARIO_ATIVO ]; do
$REBOOT;
done

else {
`su -c 'reboot'`
}

fi
}

#printf "[+] Instalar multilib ?(Y/N):"
#read -t 20 INSTALAR_MULTILIB || INSTALAR_MULTILIB="Y"
#Utilizei o "-p" do read, no lugar do printf acima
read -n1 -t20 -p "[+] Instalar multilib ?(Y/N): " || REPLY="Y"
#O teste abaixo, testa se é Y ou y
if [[ $REPLY =~ [Yy]$ ]];then
...
else
...
fi

#if [ "$INSTALAR_MULTILIB" = 'Y' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
# printf "Versao do slackware(ex:14.2):" && read -t 20 VERSAO || VERSAO="14.2"
# Instalar_multilib $VERSAO
#
#elif [ "$INSTALAR_MUTILIB" = 'N' ] || [ "$INSTALAR_MULTILIB" = 'y' ]; then
#exit
#fi


OBS: Entenda como "critica construtiva", para aprimorar o seu trabalho....

VEJA => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


Top cara! Mandei para Área de scripts com créditos a você como contribuidor.


Boa noite Göetia_0xFF.
Verificando agora, notei um detalhe:
Na linha 69, do seu script original, a função é chamada com um argumento...
Instalar_multilib $VERSAO #linha 69
Logo, a linha 18:
VERSAO_SLACKWARE=$VERSAO
Deveria ser:
VERSAO_SLACKWARE=$1

Ainda no seu script original:
A REGEX "REGEX=( '[0-9]+SBo' '[0-9]+alien' '[0-9]+multilib' )"
e o laço:
for (( count=0;count!=3;count++ )); do
echo "${REGEX[$count]}" >> "$BLACKLIST";
done

Podem ser substituídos por:
echo '[0-9]+'{SBo,alien,multilib}|tr ' ' '\n'  >> "$BLACKLIST" 


O comando:
$GET_FILES -d -c " open $URL; cd $DIRETORIO_REMOTO$VERSAO_SLACKWARE; mget *
Baixa todos arquivos do referido diretório?
E instala os que terminam com t?z?
$UPG_PKG --reinstall --install-new *.t?z;
É isso... ?

Não é necessário me citar como contribuidor...
A minha intenção é melhorar o seu script...
Troco a citação pela escolha da MELHOR RESPOSTA..... Rsrsrsrsr
VEJA => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver



$GET_FILES -d -c " open $URL; cd $DIRETORIO_REMOTO$VERSAO_SLACKWARE; mget * => Esse comando baixa todos os arquivos necessários mais o "echo" tem que ficar ali no inicio.
$UPG_PKG --reinstall --install-new *.t?z; => instala todos os pacotes.

Ajudou a melhorar o script, nada mais justo de ter créditos tb.








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts