Всем привет!
Кто-нибудь знает и может подсказать, существует ли в bash такая возможность: задать текст/команды, которые выполнялись бы перед и после любой вводимой команды? Ещё лучше, если бы от результата выполнения этих команд зависело решение о выполнении основной команды.
Зачем это надо:
- предупреждение перед каждой командой, что работаешь на удалённом сервере, а не локально
- смена цвета терминала во время выполнения команды на другой и т.д.
- запрос (время ещё раз подумать) перед выполнением опасных команд (dd и т.п.)
?
Есть мысль сделать обёртку над bash, но боюсь проблем при работе системы в автоматическом режиме...
Пред- и пост-команды в bash
Модераторы: /dev/random, Модераторы разделов
-
- Сообщения: 614
-
- Модератор
- Сообщения: 4823
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Пред- и пост-команды в bash
Имхо, проще установить на разных серверах разные promt'ы. Можно даже разными цветами.
По моему цвет всего терминала поменять не получится. Только цвет фона где пишется текст выполнения команды.
это он после каждой команды спрашивать будет?
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Пред- и пост-команды в bash
см.
$ man -P 'less -rp "PROMPT_COMMAND"' bash
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Сообщения: 614
Re: Пред- и пост-команды в bash
Тоже хорошо trap [-lp] [аргумент] [сигнал ...] если в качестве сигнала указано DEBUG, команда-аргумент выполняется после каждой простой команды
PROMPT_COMMAND Если значение задано, оно выполняется как команда перед выдачей каждого первичного приглашения.

-
- Сообщения: 586
- Статус: -
Re: Пред- и пост-команды в bash
anonymous.ru писал(а): ↑13.11.2010 21:54
Тоже хорошо trap [-lp] [аргумент] [сигнал ...] если в качестве сигнала указано DEBUG, команда-аргумент выполняется после каждой простой команды
Вы, наверно, хотели сказать перед?
If a sigspec is DEBUG, the command arg is executed before every simple command
(Bourne-Shell-Builtins)
Что-то типа такого, видимо,
Код: Выделить всё
trap 'echo $BASH_COMMAND; sleep 2' DEBUG
- примерно то, что хотел Cargo. Вот только после нажатия Ctrl-C во время слипа (у меня), trap на DEBUG перестает работать и BASH_COMMAND больше не определяется корректно.