Имеем:
printf " <VirtualHost \\\n >> $file
printf " 69.159.46.73:80 \\\n" >> $file
...Нужно получить файл с:
<VirtualHost \
69.159.46.73:80 \
...Есть идеи, как это сделать?
>Имеем:
>
>printf " <VirtualHost \\\n >> $file
>printf " 69.159.46.73:80 \\\n" >> $file
>...
>
>
>Нужно получить файл с:
>
><VirtualHost \
>
> 69.159.46.73:80 \
>...
>
>
>Есть идеи, как это сделать?
хм, вот так подойдет?
name=test1.txtecho " <VirtualHost \\" >> $name
echo " 69.159.46.73:80 \\" >> $nameили ты некий код собираешься на шеле парсить и интерпретировать?
>echo " <VirtualHost \\" >> $name
>echo " 69.159.46.73:80 \\" >> $nameтогда мне для второй строчки надо отступы....
>Имеем:
>
>printf " <VirtualHost \\\n >> $file
>printf " 69.159.46.73:80 \\\n"
>...
>
>
>Нужно получить файл с:
>
><VirtualHost \
>
> 69.159.46.73:80 \
>...
>
>
>Есть идеи, как это сделать?
printf " <VirtualHost \\\n\t\t69.159.46.73:80 \\\n" >> $file
>>Есть идеи, как это сделать?
>printf " <VirtualHost \\\n\t\t69.159.46.73:80 \\\n" >> $fileПолучим:
<VirtualHost \n 69.159.46.73:80 \nЕще раз повторяю, вновь созданный файл еще будет парсить с десяток внешних скриптов, и любое отклонение в синтаксисе может привести к неработе.
>
>>>Есть идеи, как это сделать?
>>printf " <VirtualHost \\\n\t\t69.159.46.73:80 \\\n" >> $file
>
>Получим:
>
><VirtualHost \n
> 69.159.46.73:80 \n
>
>
>Еще раз повторяю, вновь созданный файл еще будет парсить с десяток внешних
>скриптов, и любое отклонение в синтаксисе может привести к неработе.вы тут вообще какой язык обсуждаете? %)
>вы тут вообще какой язык обсуждаете? %)В заголовке темы я указал - Shell скрипты.
А вы что подумали?
>
>>вы тут вообще какой язык обсуждаете? %)
>
>В заголовке темы я указал - Shell скрипты.
>А вы что подумали?да так, просто printf в разных языках встречается :)
ну и тогда чем вас эхо не устраивает? у меня вроде выводит то что вам надо.
>да так, просто printf в разных языках встречается :)
>ну и тогда чем вас эхо не устраивает? у меня вроде выводит
>то что вам надо.Табы в эхо тоже пашут?
>Табы в эхо тоже пашут?Если с ключём -e, то echo должно \t понимать. Или вы о чём? Вообще, чем вам ваш собственный вариант с printf не нравится?
>>Табы в эхо тоже пашут?
>
>Если с ключём -e, то echo должно \t понимать. Или вы о
>чём? Вообще, чем вам ваш собственный вариант с printf не нравится?
>
Так не работает printf!
Больше двух символов "\" он игнорирует.
>>>Табы в эхо тоже пашут?
>>
>>Если с ключём -e, то echo должно \t понимать.Этим и обошлось. Топик считать закрытым.
>Так не работает printf!
>Больше двух символов "\" он игнорирует.Да ничего он не игнорирует... Просто в приведённом в самом начале примере кода используются двойные кавычки и шелл обрабатывает бэкслэши внутри них. Надо писать либо
printf ' <VirtualHost \\\n' >> $file
printf ' 69.159.46.73:80 \\\n' >> $fileлибо
printf " <VirtualHost \\\\\\n" >> $file
printf " 69.159.46.73:80 \\\\\\n" >> $fileПервый вариант понятнее, второй нужен, если внутри вывода есть переменные, которые нужно разыменовать.
А вообще, вопрос сформулирован как-то... долго не мог понять, в чём собственно проблема.
>>Так не работает printf!
>>Больше двух символов "\" он игнорирует.
>
>Да ничего он не игнорирует... Просто в приведённом в самом начале примере
>кода используются двойные кавычки и шелл обрабатывает бэкслэши внутри них. Надо
>писать либо>printf " <VirtualHost \\\\\\n" >> $file
>printf " 69.159.46.73:80 \\\\\\n" >> $fileСпасибо, сделал себе заметку.
Но скрипт уже сдал, используя echo -e