Eu retiro uma versão anterior do seu script. Não é necessário apagar a função.
Quando executo o script com \bin\bash MyScript.sh
parece funcionar corretamente.
Se, em vez disso, eu executar com \bin\sh MyScript.sh
, isso me causará erros.
Por quê?
Em muitas distribuições \bin\sh
é um symlink para dash
, em outro para bash
, em outro pode ser o original sh
.
Se você alterar com chown u+x MyScript.sh
a permissão do script e depois de executá-lo com ./MyScript.sh
, o sistema usará a primeira linha para entender com qual shell
executá-lo. Você pode ler mais sobre o shebang aqui
Se você executar o script com sh MyScript.sh
você força o script será executado com um shell diferente (neste caso /bin/sh
).
#!/bin/bash
function pause(){
read -p "$*"
}
printf "\n(Website):" &&read input
output=$(ping -c 1 "$input" 2>/dev/null)
if [ $? -eq 0 ]; then
ip=$(printf '%s' "$output" | gawk -F'[()]' '/PING/{print $2}' 2>/dev/null)
clear
printf "\n${ip}";
echo -n $ip | xclip -selection c
printf "\n\nIP copied to clipboard.\n\n\n"
sleep 2
pause 'Press [Enter] key to exit...'
exit 0
else
clear
printf "\n\n Host not found\n\n"
sleep 1
pause 'Press [Enter] key to exit...'
exit 1
fi
Nota:
Eu mudo muitos echo
com printf
, porque neste caso é mais compacto.
Com printf
, você precisa se lembrar de colocar \n
para ter uma nova linha, \t
para uma guia e assim por diante ...