$ echo hello; cd ~/Docs
hello
$ !!
echo hello; cd ~/Docs
hello
Я хочу получить Hello
и выполнить каталог изменений после ввода !!
без повторного показа Echo Hello; CD ~ / Docs
, снова.
Редактировать:
FC работает только для одной команды, но не выполняет полную строку от терминала. То же самое для !!
или $ (!!)
, они не работают. Я попробовал stty -echo
, но то же самое - это только скрывает печатать !!
, но все еще показывает команду. Ближайшее решение, которое у меня было, - это сохранить эту команду, затем запустить его из Script.SH
, но он все равно покажет, что он работает скрипт .sh
.
Создайте следующую функцию, которая загружается с вашим Bash Config (например, в .bashrc
):
rpt() {
IFS=';' read -r -a array <<< "$(fc -ln -1)"
for element in "${array[@]}"
do
$element
done
}
Запустите команду RPT
для выполнения функции.
Это считывает последнюю командную строку в массив и разделяет его в ;
знаки, и каждый элемент в массиве (каждая команда) работает отдельно.
Для этого работает ;
; ; ; ; является зарезервированным символом, который не может при каких-либо обстоятельствах нельзя использовать в печатных строках и т. Д. ;
;
Это ограничение, которое вы должны принять для этого решения, но Я считаю это «достаточно хорошо» для работы.