Задать вопрос
@popov654
Специалист в области веб-технологий

Ошибка в bash скрипте: bash unexpected EOF while looking for matching `'' — что именно не так?

#!/bin/bash

local_ip="$(hostname -i | grep -oE '[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}')"
domains="$(cat /opt/cloudfave/cluster_config.js | grep domain | awk '/domain: / { print $2 }' | sed -e \"s/[,']//g\")"

for host in $domains
do
    ip="$(nslookup $host | awk '/^Address: / { print $2 }')"
    if [ $ip != $local_ip ]; then
        echo $ip
        sleep 1
    fi
done


Подскажите пожалуйста, почему интерпретатор ругается на строку ip=... ? На вид всё выглядит корректно, все кавычки парные и вовремя закрыты.
  • Вопрос задан
  • 179 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
На вид всё выглядит корректно, все кавычки парные и вовремя закрыты.
domains="$(cat /opt/cloudfave/cluster_config.js | grep domain | awk '/domain: / { print $2 }' | sed -e \"s/[,']//g\")"

вот здесь одиночная кавычка в строке sed портит разбор
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@dronmaxman
VoIP Administrator
| sed -e \"s/[,']//g\")"
Так делать нельзя, двойные кавычки внутри двойных кавычек.
Попробуй так
| sed -e \' s/[,\']//g\')"
Ответ написан
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Это какое-то задание на мучения с кавычками? Потому что если нет - разбирайте нафиг эти спагетти и не ломайте себе и нам глаза.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы