Bash error: syntax error: unexpected end of file

Bash error: syntax error: unexpected end of file

10.12.2017 02:09:41 Просмотров 16 Источник

Получаю

syntax error: unexpected end of file

при попытке выполнить скрипт. Что не так в скрипте? (проверял в https://www.shellcheck.net/ вроде как все зеленое)

#!/bin/sh
PROCESS_COUNT=$(ps aux | grep my-program | grep -v grep | awk '{print $2}' | wc -l)

if [ $PROCESS_COUNT != 0 ] ; then 
    ps aux | grep my-program | grep -v grep | awk '{print $2}' | xargs kill -9
fi

FINAL_RESULT=$(ps aux | grep my-program | grep -v grep | awk '{print $2}' | wc -l)
if [ $FINAL_RESULT != 0 ] ; then 
    echo "error thrown"
fi
У вопроса есть решение - Посмотреть?

https://ru.stackoverflow.com/questions/756277/bash-error-syntax-error-unexpected-end-of-file#comment1168769_756277
line 12: syntax error: unexpected end of file - это следующая за последним fi

Ответы - Bash error: syntax error: unexpected end of file / Bash error: syntax error: unexpected end of file

Является ответом!
Roberto

10.12.2017 03:49:09

Вот тут представлено решение, проблема была в том, что текстовый редактор приписывал символы \r\n вместо только \r как требует unix. Решение взято отсюда ответ со стекоферфлоу

Вот тут описано как такое проделать использовав notepad ++

как удалить \n используя notepad++

Andrey

19.10.2018 02:08:42

Вместо подсчета количества процессов в качестве страховки от вызова kill без аргументов, гораздо удобнее использовать цикл while read, поскольку при отсутствии элементов в списке процессов он просто не запустится. К примеру так:

#!/bin/bash
my_program=sublime_text # к примеру
while read -r pid
do
    kill -9 "${pid}"
done < <(awk '$11 ~ my_program {print $2}' my_program="${my_program}" < <(ps aux))
Закрыть X