Введите нулевой символ в терминале - PullRequest
11 голосов
/ 27 сентября 2011

Есть ли способ ввести нулевой символ в терминале?

Я бы хотел сделать что-то вроде:

this is a sentence (null) test123

Ответы [ 4 ]

6 голосов
/ 27 сентября 2011

Очевидно, вы можете набирать этот символ с помощью ^ @ в некоторых наборах символов Эта статья в Википедии о нулевом символе может быть полезна.

5 голосов
/ 14 июля 2015

В Linux любой специальный символ может быть буквально вставлен в терминал, нажав Ctrl + v , за которым следует реальный символ. null обычно ^@, где ^ означает Ctrl и @ для любой комбинации на вашей раскладке клавиатуры, которая создает @.

На своей клавиатуре я делаю: Ctrl + v , затем Ctrl + Shift + @ и я получаю символ ^@ с выдающимся цветом фона. Это означает, что это специальный символ, а не просто набранные ^ и @.

Редактировать: Несколько лет спустя и несколько вариантов ввода, реализованных различными терминалами с использованием раскладок клавиатуры, требующих нажатия Shift для доступа к @.

  • Ctrl + v с последующим Ctrl + Shift + @
  • Ctrl + v с последующим Shift + @ без освобождение Ctrl,
  • Ctrl + Shift + v с последующим @ без освобождение Ctrl + Сдвиг .
  • Ctrl + Shift отпускание Shift и повторное нажатие Shift , сохраняя оба Ctrl + Нажмите Shift , затем v и, наконец, @ . Видно в некоторых терминалах, которые реализуют специальный ввод для Ctrl + Shift .
4 голосов
/ 27 сентября 2011
$ echo -e "this is a sentence \0 test123"
this is a sentence  test123

The null here ^^ IS NOT visible

$ echo -e "this is a sentence \0 test123" | cat --show-nonprinting
this is a sentence ^@ test123

But it IS here ^^

Но, может быть, вы не хотели этого для сценария?

3 голосов
/ 30 июля 2013

Как и в случае с командой прерывания ( Ctrl - C ), в большинстве терминалов просто нажмите Ctrl - @ (с использованием Shift на моей клавиатуре).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...