Как написать под линукс скрипт на Win10 для проверки компов в сети?
мне нужно прочитать список компов из текстового файла, по одному названию в строке
потом попинговать их по одному, если комп включен то его имя записываем в один файл
если комп выключен, то его имя записываем в другой файл
в cmd bat я это сделал легко
но в линуксе под Win10 со всеми последними обновлениями это сделать не получается
пишет что то про DO и все. пробовал все примеры из этой и других статей
ошибка может отличаться но не работает
ошибка при чтении списка файлов.
#!/bin/bash
for iplist1 in bank_router_ip.txt
do
echo "$iplist1"
done
lin@W10:/mnt/c/Users/IEU$ sh test
: not foundst:
: not foundst:
: not foundst:
: not foundest:
: not foundest:
: not foundest:
test: 36: test: Syntax error: end of file unexpected (expecting «done»)
#!/bin/bash
cat bank_router_ip.txt | while read p; do
echo $p
done
lin@W10:/mnt/c/Users/IEU$ sh test
: not foundst:
: not foundst:
: not foundst:
: not foundest:
: not foundest:
test: 14: test: Syntax error: «done» unexpected (expecting «do»)
#!/bin/bash
for planet in Меркурий Венера Земля Марс Юпитер Сатурн Уран Нептун Плутон
do
echo $planet
done
lin@W10:/mnt/c/Users/IEU$ sh test
: not foundst:
test: 4: test: Syntax error: word unexpected (expecting «do»)
zigrus: лол. ЛИНУКС В ВИНДЕ ИЛИ НЕ В ВИНДЕ НЕ ПРИ ЧЕМ. Это, во-первых, bash. Во-вторых, я тестировал под своим bash'ем в линуксе - и все работает. Нет, проблема именно в вас. Скидывайте, что вы там понаписали
Another possible solution using unix text editor vi:
open file in vi edit with vi filename.sh command;
type in vi :set ff=unix command;
save file with :wq
It will save the file with unix line endings.
редактировал в блокноте в винде
а с помощью этой команды :set ff=unix перевел в unix формат и все заработало
zigrus: у вас в файле скрипта line ending в Windows-style ("\r\n"), а не Unix-style ("\n"), к командам это отношения не имеет. Пофиксить файл можно примерно так: tr -d '\15\32' < script.sh > script_fixed.sh