Предполагая переменную среды, поскольку test-ing
не является допустимым именем переменной оболочки, вы можете использоватьprintenv
:
% env foo-bar=baz printenv foo-bar
baz
Или Перл:
% env foo-bar=baz perl -e 'print $ENV{"foo-bar"}'
baz
Или другие инструменты, такие как Python и т. д.
Похоже, вы неосознанно используете bash
в режиме vi
.
В режиме vi
bash
, как и vi
, имеет режим вставки , в который можно вставлять текст (, и режим замены , который является разновидностью )и командный режим , где вы можете вводить команды движения или действия, такие как x
для удаления символа, b
для перемещения на одно слово назад и т. д.
Вы переключаетесь из режима вставки/замены в командный режим с помощью Esc и нескольких команд, таких как i
, a
, A
. ], s
... может заставить вас войти в режим вставки из командного режима .
В командном режиме команда v
вызывает редактор для редактирования текущей строки (редактор vi
не имеет команды, привязанной к v
, поэтому ksh (на на котором основан bash )можно было использовать для этой конкретной задачи ).
Здесь мне кажется, что вы не ожидаете использования vi
стиля привязки клавиш. Привязка клавиш bash
/ readline
по умолчанию — emacs
, а не vi
, поэтому я подозреваю, что вы или ваш системный администратор ввели некоторые настройки, которые включают режим vi
по умолчанию.
Это можно сделать, добавив set -o vi
в /etc/bashrc
или /etc/bash.bashrc
везде, где в вашей системе находится системный файл настройки по умолчанию для bash
, или set editing-mode vi
в /etc/inputrc
.
Или у вас могут быть аналогичные настройки в ваших собственных ~/.bashrc
или ~/.inputrc
.
Вероятно, вы захотите изменить его обратно на set -o emacs
в ~/.bashrc
или set editing-mode emacs
в ~/.inputrc
.
Обратите внимание, что режим emacs
имеет аналогичную функцию, привязанную к Ctrl+XCtrl+E
Если вы планируете использовать режим vi
и не хотите, чтобы v
порождал редактор,затем вы можете назначить виджет на v
, отличный от edit-and-execute-command
, например:
bind -m vi-command '"v": abort'
Или в пустую строку, чтобы она игнорировалась:
bind -m vi-command '"v": ""'