Я пытаюсь запустить следующий скрипт. Я запускал его раньше без проблем, но теперь я сталкиваюсь с ошибкой.
#!/bin/bash
# init
function pause(){
read -p "$*"
}
echo & echo "(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
echo
echo "$ip";
echo -n $ip | xclip -selection c
echo
echo
echo IP copied to clipboard.
echo
echo && sleep 2
pause 'Press [Enter] key to exit...'
exit
else
clear
echo
echo "Host not found";
echo && sleep 1
pause 'Press [Enter] key to exit...'
exit
fi
Но теперь внезапно это приводит к следующей ошибке:
3: /home/username/Desktop/shell.sh: Syntax error: "(" unexpected
Я не вносил никаких изменений в сам скрипт, и я не понимаю, почему эта скобка приводит к ошибке сейчас. Кто-нибудь видит в этом сценарии что-то, что я пропустил?
Bash версия: 4.2.45(1)-релиз
свежая установка, мята 16 (все обновлено)
РЕДАКТИРОВАТЬ: Я положу это здесь, чтобы я мог показать, что происходит.
Я полностью удалил функцию паузы:
#!/bin/bash
# init
echo & echo "(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
echo
echo "$ip";
echo -n $ip | xclip -selection c
echo
echo
echo IP copied to clipboard.
echo
echo && sleep 2
exit
else
clear
echo
echo "Host not found";
echo && sleep 1
exit
fi
Но когда я запускаю "sh ~/Desktop/shell.sh", я получаю это:
: not found/Desktop/shell.sh: 3: /home/username/Desktop/shell.sh:
(Website):
(Я набираю google.com и нажимаю ввод) и он возвращает
: bad variable name/shell.sh: 4: read:
: not found/Desktop/shell.sh: 5: /home/username/Desktop/shell.sh:
/home/username/Desktop/shell.sh: 24: /home/username/Desktop/shell.sh: Syntax error: word unexpected
Спасибо всем за ответы, что-то не так с самой оболочкой?