LINUX.ORG.RU
ФорумAdmin

a2ensite [ERROR: No site found matching ][bash]

 , , ,


0

1

Есть проблемка, нужно врубить несколько виртхостов, пробую так:

#!/bin/bash
for i in /etc/apache2/sites-available/* 
	do a2ensite "$i"|sed "s|/etc/apache2/sites-available/||g"
done
exit 0
в ответ получаю
ERROR: No site found matching /etc/apache2/sites-available/site.com
Файл по этому пути конечно присутствует.

★★★★

Последнее исправление: cetjs2 (всего исправлений: 1)

Вы хотели сказать:

$(sed "s|/etc/apache2/sites-available/||g" <<<"$i")
или (не bashизм)
$(echo "$i" | sed "s|/etc/apache2/sites-available/||g")

Вы хотите воспользоваться sed - это запуск подпроцесса. Для получения вывода подпроцесса нужны скобки $() или кавычки ``.

Вы хотите скормить ему переменную - её нужно написать sed'у на стандартный ввод, отсюда echo «$i» | или <<<«$i».

AITap ★★★★★
()
Последнее исправление: AITap (всего исправлений: 1)

Что-то я не понял конструкции, которую ты пытаешься сделать.

Вообще вот так можно

for i in /etc/apache2/sites-available/*
do 
  i=$(echo "$i" | sed 's/\/.*\///')
  a2ensite $i
done
или вот так
for i in $(ls /etc/apache2/sites-available/)
do
  a2ensite $i
done

shell-script ★★★★★
()
Ответ на: комментарий от AITap

Спасибо, просто подставив echo все выглядело очень красиво, и не понял почему не срабатывало если просто заменить echo на a2ensite.

invokercd ★★★★
() автор топика
Ответ на: комментарий от shell-script

Заюзал второй вариант, спасибо.

invokercd ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.