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 ...