The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Fedora на пути к изменению наименования сетевых интерфейсов, opennews (??), 24-Янв-11, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


53. "Fedora на пути к изменению наименования сетевых интерфейсов"  –3 +/
Сообщение от Аноним123321 (ok), 25-Янв-11, 06:04 
> Экейпить будут :)

95% людей кто пишет bash-скрипты (у себя в собственном линуксе на коленке) -- даже не знают что такое "экранизация" в bash :-D

для них функция quote() -- это вообще просто какаято невиданная непонятная фигня

вот сейчас я покажу пример как можно послать команду на удалённый ssh-сервер чтобы удалённый ssh-сервер создал удалённый файл с произвольным именем и содержанием:


#!/bin/bash

remote_addr="$1"
file_name="$2"
file_content="$3"

if [ $# != 3 ]
then
    echo "пожалуйста укажите <удалённый-адресс> <имя-файла> <содержимое файла>"
    exit 2
fi

quote ()
{
    echo \'${1//\'/\'\\\'\'}\'
}

ssh "$remote_addr" "sh -c $(quote "echo $(quote "$file_content") > $(quote "$file_name")")"


но 95% bash-пейсаталей так и невдомёк понять зачем в этом примере используется функция quote()

...и это печально :-( :-( :-(

однако использование экранизации -- позвалило использовтаь наш скрипт даже как:

$ ./xxx root@192.168.0.197 "/root/тестовый файл" "тестовый текст в файле"

заметте что я даже смог использовать пробелы в имени и содержимом файлах!! это ничего не испортит теперь уже нам!!!

...а вы там боитесь про какието <#> (ну не лично Вы конешно :))

# p.s.: не не.. я понимаю что создать удалённый файл на сервере можно и с помошью команды scp... но здесь я просто рассмотрел пример "что такое экранизация"

Ответить | Правка | К родителю #17 | Наверх | Cообщить модератору

54. "Fedora на пути к изменению наименования сетевых интерфейсов"  +/
Сообщение от PereresusNeVlezaetBuggyemail (ok), 25-Янв-11, 06:13 
>> Экейпить будут :)
> 95% людей кто пишет bash-скрипты (у себя в собственном линуксе на коленке)
> -- даже не знают что такое "экранизация" в bash :-D

Не знают. И поэтому-то использование "#" череповато — обычный, безобидный пользователь какой-нибудь убунты пострадает из-за криворукости программиста. Провоцирование проблем в данном случае не оправданно.

> # p.s.: не не.. я понимаю что создать удалённый файл на сервере
> можно и с помошью команды scp... но здесь я просто рассмотрел
> пример "что такое экранизация"

Как раз иногда приходится использовать ssh, так как scp не умеет копировать из стандартного ввода. То есть нормально сливать вывод программы через SSH можно только таким образом; можно, конечно, ещё извращённо, через перенаправление сокетов, но давайте всё же без маразма. :-)

Ответить | Правка | Наверх | Cообщить модератору

89. "Fedora на пути к изменению наименования сетевых интерфейсов"  +2 +/
Сообщение от serg (??), 25-Янв-11, 11:55 
экранизация
http://ru.wikipedia.org/wiki/%D0%AD%D0%B...

Экранирование символов
http://ru.wikipedia.org/wiki/%D0%AD%D0%B...

Зачем кичиться познаниями в баше, если термины правильно употреблять не можешь?
в приведенном фрагменте когда, кирилический текст смотрится забавно.. что делать если другая локаль? Какже использование фич? gettext? где переводы?

большинство людей используют скрипты как средство автоматизации своей работы. на мой взгляд, нет смысла adhoc скрипт тестировать на все возможные "засады".

Ответить | Правка | К родителю #53 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру