Итак, завершение tab kbd> великолепно ... если только вы не n00b ... и вы набираете первую часть ifconfig
, а затем нажимаете tab kbd> введите kbd> очень быстро ... в этом случае вы получите:
(не фактический вход терминала)
~$ if
>
>
>'
> "
> end
> ^C
>
> )
> ()
> ]
>
> []
> ]
> ;
>
>
> []
> ;aognf'
>
>
Что действительно странно, так это ctrl kbd> c kbd> даже не работал. Я знаю о кавычках (именно поэтому я и попробовал в первую очередь), но это знание не помогло.
Как можно в следующий раз вырваться из одной из этих жирных ошибок, не закрывая терминал?
Бонус за ответ, что я случайно начал делать?
Вы запустили if
оператор. Следующая команда выполняется, и только если она возвращается, нулевой статус выхода (успех) следующие выполняемые команды, от then
ключевое слово вплоть до fi
ключевое слово ("если" назад). Как:
if true
then
echo yes
fi
Обычно каждый использует test
программа (иначе [
) для тестирования различных вещей, таких как:
if [ $somevariable = someword ]
или
if [ -f /some/file/exists ]
Ctrl-C А прерывает его прекрасный для меня.
Используйте Управление - D в случаях как это.
Вы застряли в оболочке удара if
условная управляющая структура.
Это - вывод, который я вижу:
$ if
>
> '
> "
> sdf
> )
> []
Управление - удар D
: синтаксическая ошибка: неожиданный конец файла
Используйте stty -a
, чтобы быть уверенными, что предают земле = ^C. Если это не, ^C является просто другим символом. stty sane
помогает мне из терминального беспорядка. См. man stty
. Вот первые несколько моих строк (где ^C действительно прерывает если....):
walt@spong:~(0)$ stty -a
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
...