Я использую систему Ubuntu Linux, и каждая команда, которую я ввожу, отображается в следующей строке, после чего выводится команда. Например:
root@dpkube165:~# ls
ls <--- why is this here?
Desktop Documents Downloads
root@dpkube165:~# date
date <--- or this?
Mon Mar 19 11:24:59 EDT 2018
root@dpkube165:~# echo "Hello, world!"
echo "Hello, world!" <--- or this?
Hello, world!
Я подумал, что это может быть связано с подсказкой, которая выглядит следующим образом (PS1):
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
но просмотр онлайн-руководств, подсказывающих побег, не выявил ничего очевидного.
sudo -i
серии команд корневого уровня? Особенно, когда я что-то отлаживаю?Ответы:
Похоже, вы
-v
установили (что-то работаетset -v
).Чтобы изменить это, бегите
set +v
.См.
bash
Man-страницу (в разделе « Командыset
встроенной оболочки ») для получения дополнительной информации о встроенной команде.Либо запустить
help set
изнутриbash
для более прямого доступа к тексту справки.источник
man bash
вы также можетеhelp set
.bash
страницы ... спасибо!set -o vi
. Mistype это какset -ovi
и вы получите вышеописанное поведение.set -x
более полезным для регистрации или отладки вещей, отличных от control-flow, потому что он расширяет переменные, чтобы показать, какие команды на самом деле выполняются, например,echo foo
вместоecho $my_string
По крайней мере, в Bash 4.3 эта команда имеет аналогичный эффект
set -v
:Чтобы проверить, влияет ли это на вас, запустите
Чтобы сбросить его, запустите
источник