The OpenNET Project / Index page

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

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

"Bash read"  +/
Сообщение от Gremlin2 (ok) on 23-Окт-07, 13:29 
Доброго времени суток,

Команда read выводит пустую строку ожидая ввода пользователя.
Меня интересует - возможно ли что нибудь написать на это самой строке дав таким образом дефольтивный ответ для пользователя? То есть, команда read дожидается пользователя который может либо нажать enter  и ввести то что я там уже написал или подредактировать написанное и потом нажать на enter (и ввести данные). В любом случае read прочтёт только "финальный" результат написанного.

Как это сделать?

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

Оглавление

  • Bash read, vic, 13:56 , 23-Окт-07, (1)  
    • Bash read, Gremlin2, 14:20 , 23-Окт-07, (2)  
      • Bash read, CSX, 16:49 , 23-Окт-07, (3)  
        • Bash read, Gremlin2, 18:08 , 23-Окт-07, (4)  
          • Bash read, angra, 23:36 , 23-Окт-07, (5)  
          • Bash read, Big Shadow, 13:57 , 24-Окт-07, (6)  
  • Bash read, EXuDHA, 19:31 , 19-Дек-09, (7)  
  • Bash read, SomeUser, 19:08 , 19-Апр-11, (8)  

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


1. "Bash read"  +/
Сообщение от vic (??) on 23-Окт-07, 13:56 
>Доброго времени суток,
>
>Команда read выводит пустую строку ожидая ввода пользователя.

Нет, не выводит пустую строку. Просто ждет ввода.

>Меня интересует - возможно ли что нибудь написать на это самой строке
>дав таким образом дефольтивный ответ для пользователя?

Имхо, нет. Все что она делает описано в man bash
Часто используют прием когда нажатие enter (т.е. пустое значение) интерпретируется как дефолтное. И далее в коде скрипта нужной переменной присваивают это дефолтное значение.

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

2. "Bash read"  +/
Сообщение от Gremlin2 (ok) on 23-Окт-07, 14:20 
>Нет, не выводит пустую строку. Просто ждет ввода.

Семантика.

>Часто используют прием когда нажатие enter (т.е. пустое значение) интерпретируется как дефолтное.
>И далее в коде скрипта нужной переменной присваивают это дефолтное значение.
>

Это я знаю, но всё-же меня интересует именно тот сценарий который я описал. Может не средствами BASH но хотелось бы имплементировать именно такое поведения скрипта.

Спасибо.

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

3. "Bash read"  +/
Сообщение от CSX on 23-Окт-07, 16:49 
>>Нет, не выводит пустую строку. Просто ждет ввода.
>
>Семантика.
>

Это не семантика а объяснение почему нельзя так сделать.

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

4. "Bash read"  +/
Сообщение от Gremlin2 (ok) on 23-Окт-07, 18:08 
Семантика потому что команду read я привёл как пример (команды читающей input пользователя). Другими словами, вопрос состоит в том как достичь того чего я описал? Не ограничиваясь той или иной командой, так что если это не сделать командой read то существует-ли другая команда позволяющая это сделать?

Спасибо.

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

5. "Bash read"  +/
Сообщение от angra (ok) on 23-Окт-07, 23:36 
смотрите в сторону библиотеки readline, интерфейс к ней есть во многих языках, в том числе и в perl. Bash тоже использует ее, но, если не ошибаюсь, только в интерактивном режиме, то есть из скриптов доступа нет, хотя на всякий случай гляньте man bash
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Bash read"  +/
Сообщение от Big Shadow on 24-Окт-07, 13:57 
>если это не сделать командой read,
> то существует-ли другая команда позволяющая это сделать?

существует и позволяет не только это
попробуйте dialog, может вам подойдет

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

7. "Bash read"  +/
Сообщение от EXuDHA on 19-Дек-09, 19:31 
В Bash v.4 появилась запрашиваемая Вами возможность!
Используйте команду:
read -e -i "Выбор по умолчанию"
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Bash read"  +/
Сообщение от SomeUser on 19-Апр-11, 19:08 
read line ; if [[ $line == '' ]]; then line=000 ; fi; echo $line;
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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