The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Программирование на Шеле /bin/sh"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Программирование на Шеле /bin/sh"  
Сообщение от Валентин. email on 07-Апр-09, 13:19 
Есть такой скриптик.
Изначально он должен был состоять из одной строки (3-я снизу), но
это все работало до тех пор пока в имени файла не появились пробелы.

Программка $0.bin
#/opt/custom/lib/ld-linux.so.2 $0.bin -path /home/user/Soft Tools 2009.bin

принимает пробелы в строке как сепараторы и все что между пробелами считает отдельными самостоятельными путями.

Если сделать так
#/opt/custom/lib/ld-linux.so.2 $0.bin -path /home/user/Soft\ Tools\ 2009.bin

строка читается правильно и все работает. Но...

Скриптик делает следующее: Он ищет пробелы и перед каждым вставляет "\".
Казалось бы счастье. Если строку  пробелами вбить руками - то все работает, но
если давить на таб и заставить баш, например, дополнять строку, то "\" вставляются автоматически, но в переменную $* не попадают.
И потом нет никакой возможности явно их туда прописать.
Я уже моск сломал.

Надо: чтобы в переменной ${new_line} в третьей снизу строке были эти дурацкие символы.

========================================================
#!/bin/sh

new_line=

while [ "$1" != "" ];
do
    tmp_var=$1

    if [ "${tmp_var:0:1}" != "-" ]; then
        if [ "${new_line}" == "" ]; then
            echo "Error"
            exit; # --- error
        fi;
        new_line="${new_line}\\ $1";
    else
        new_line="${new_line} $1";
    fi;
    echo "${new_line}"
    shift;
done;

echo new line is "${new_line}"

/opt/custom/lib/ld-linux.so.2 $0.bin ${new_line}

#/opt/custom/lib/ld-linux.so.2 $0.bin -path /home/user/Soft Tools 2009.bin

#/opt/custom/lib/ld-linux.so.2 $0.bin -path /home/user/Soft\ Tools\ 2009.bin
=================================================

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

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


1. "Программирование на Шеле /bin/sh"  
Сообщение от Andrey Mitrofanov on 07-Апр-09, 13:43 
>Надо: чтобы в переменной ${new_line} в третьей снизу строке были эти дурацкие
>символы.
>/opt/custom/lib/ld-linux.so.2 $0.bin ${new_line}

/opt/custom/lib/ld-linux.so.2 $0.bin "${new_line}"

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

2. "Программирование на Шеле /bin/sh"  
Сообщение от Валентин. email on 07-Апр-09, 13:45 
>>Надо: чтобы в переменной ${new_line} в третьей снизу строке были эти дурацкие
>>символы.
>>/opt/custom/lib/ld-linux.so.2 $0.bin ${new_line}
>
>/opt/custom/lib/ld-linux.so.2 $0.bin "${new_line}"

мимо :(((
пробовал.
четвертая снизу строка: в эхе симфолы не выводятся :\

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

3. "Программ"  
Сообщение от Andrey Mitrofanov on 07-Апр-09, 13:57 
>мимо :(((
>пробовал.
>четвертая снизу строка: в эхе симфолы не выводятся :\

Ну эт-тогда Вам программист нужен. :/

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

4. "Программирование на Шеле /bin/sh"  
Сообщение от Sarge (??) on 07-Апр-09, 18:23 
а так не устроит:
echo new line is \"${new_line}\"
??
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Программирование на Шеле /bin/sh"  
Сообщение от gaa (ok) on 07-Апр-09, 20:00 
>вставляются автоматически, но в переменную $* не попадают.

Почитай ман к шеллу на предмет различий между "$*" и "$@".

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

6. "Программирование на Шеле /bin/sh"  
Сообщение от gaa (ok) on 07-Апр-09, 20:02 
И ещё: прочитай man getopts, чтобы не изобретать велосипед при разборе параметров командной строки.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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