@aleksey005

Почему не работает такая конструкция bash?

Пытаюсь понять, почему не работает такая конструкция скрипта bash:

#!/bin/bash
FILE=$1
while read line; do
     echo "MAC : $line"
     PID=$(ps aux | grep "$line" | grep -v "grep" | awk {'print $2'})
     echo "PID : $PID"
done < $FILE


В файле список MAC-адресов, один адрес в одной строке.
  • Вопрос задан
  • 2712 просмотров
Решения вопроса 1
@aleksey005 Автор вопроса
Переделал скрипт, наверное дело было в символе переноса строки (файл делался в Windows):
Сейчас так и все работает:
#!/bin/bash
FILE=$1
while read line; do
     echo "MAC : $line"
     MAC=$(echo "$line" | cut -c 1-17)
     PID=$(ps aux | grep $MAC | grep -v "grep" | awk {'print $2'})
     echo "PID : $PID"
done < $FILE

Скрипт вызываю так:
./script /путь/до/файла/файл
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы