Текст эха, предложенный подсказкой в ​​bash

Можно ли изменить текст, который появляется после $PS1 . Это то, что вводит пользователь. Я хочу предложить некоторую команду после запуска my_function . Конечно, я должен иметь возможность изменять / удалять его с помощью клавиши backspace

 root@linux: root@linux: ls aplha beta gamma root@linux: my_function root@linux: echo_something_here (It should be deletable by me) 

2 Solutions collect form web for “Текст эха, предложенный подсказкой в ​​bash”

На основе этого ответа вы можете использовать expect (вам, возможно, придется его установить в первую очередь):

 #!/usr/bin/expect -f # Get a Bash shell spawn -noecho bash # Wait for a prompt (in my case was '$', but your example only put ':') expect ": " # store the first argument in a variable set arg1 [lindex $argv 0] # Type something send $arg1 # Hand over control to the user interact exit 

Теперь вы можете вызвать его (если вы сохранили его как my_function ):

 root@linux: ./my_function "some text here" root@linux: some text here 

Единственным нежелательным эффектом может быть то, что он начинает новый баш.

Если я правильно понял вопрос, то получив скрипт поддержки

  #! / Bin / Баш
  read -ei "$ *"
  printf "% s \ n" "$ REPLY"

например, ~ / bin / iedit, тогда вы можете сказать

eval $ (~ / bin / iedit "текст здесь")

это выведет «текст здесь», который вы можете редактировать. После того, как вы закончите его редактирование, будет выполнена результирующая команда.

Это не хороший пример кода. Почти всегда вы хотите использовать «$ @», а не «$ *», и обычно нужно стараться избегать использования eval. Возможно, вы захотите добавить историю-$ REPLY. Сложив их вместе, скрипт поддержки может быть

  #! / Bin / Баш
  read -ei "$ *"
  history -s "$ REPLY"
  fc -s

и вы будете ссылаться на него как «источник ~ / bin / iedit», текст здесь ».

Interesting Posts

Использование области SSD накопителя H-HDD с LVM / bcache

Ограничьте пропускную способность отдельных HTTP-запросов, не ограничивая общую пропускную способность

ядро реального времени / низкая латентность происходит от источника ванили

Шаблон печати регулярных выражений AWK

Получить хронологический список дат и времени для запланированных задач в cron

Как разместить данные, ограниченные скобками, в одной строке?

Условная проверка IP-таблиц

Как определить, какие каталоги находятся в другой файловой системе?

Проблема Fedora VNC – получение серого экрана с тремя флажками

Как реализовать циклический поток данных между взаимосвязанными командами?

Группы ubuntu не возвращают все мои группы

Как установить Skype в Ubuntu на ARM?

Проблемы с шрифтом для конкретного пользователя в разных приложениях

Как перейти к следующему экрану на экране

Проверка правописания ввода пользователя по aspell, но как вызвать интерактивный режим в этом контексте?

Linux и Unix - лучшая ОС в мире.