Я пытаюсь написать скрипт, который позволит вам ввести имя вашего компьютера, а затем сообщить, находится ли хост в локальной сети. Вот что у меня есть:
#!/bin/bash
echo "Please enter the host you would like to ping:"
read -r host
output=$(ruptime | awk '{print $1}')
if [ "$output" == "$host" ];
then
echo "$host is up"
else
echo "$host is down"
fi
Это работает, когда я ввожу имя моей машины 'ubuntu', так как я единственный в моей локальной сети, и оператор awk выводит 'ubuntu'.
Если Например, я запускаю:
#!/bin/bash
echo "Please enter the host you would like to ping:"
read -r host
output=$(cat /etc/hosts | awk '{print $1}')
if [ "$output" == "$host" ];
then
echo "$host is up"
else
echo "$host is down"
fi
Выходные данные состоят из 2 строк: localhost и ubuntu. Если я затем запускаю скрипт и ввожу любой из них, он говорит, что он не найден.
Я думаю, что awk ищет только значение в первой строке. Как сделать так, чтобы скрипт проверял каждую строку из выходных данных awk, а затем сравнивал их с тем, что было введено? Заранее спасибо!