Перейдите к настройкам клавиатуры, выберите макет, а затем параметры. Вы найдете там ctrl + alt + backspace, просто отметьте его и ваше добро пожаловать
Ваш пример не иллюстрирует ваш вопрос.
$ toto="somevalue"
$ MY_VAR="$toto"
$ echo $MY_VAR
somevalue
$
Чтобы сделать то, что вы просили, вам понадобится:
MY_VAR='$toto'
или
MY_VAR="\$toto"
Не может точно сказать, плохо ли это. Лично я не вижу никакой очевидной проблемы.
Многие отметили, что MY_VAR="$toto" назначит MY_VAR текущее значение $toto или пустую строку в случае, если $toto не задан (или в случае, если $toto сам содержит пустую строку), но Я удивлен, что никто не заметил, что MY_VAR="$toto" не будет устанавливать переменную окружения, а скорее переменную оболочки (если только переменная с именем MY_VAR уже присутствует в среде, возможно, потому, что это касается только фактического вопроса) .
Однако, к примеру, нет, это не плохая практика, или же такая же плохая практика, как наличие любого другого специального символа оболочки внутри переменной, что часто невозможно избежать.
[d3 ] В 99% случаев оболочка будет расширять переменную в текущей оболочке не (или вообще не будет ее расширять, если она заключена в одиночные кавычки):$ MY_VAR='$toto'
$ echo $MY_VAR
$toto
$ echo '$MY_VAR'
$MY_VAR
$ echo "$MY_VAR"
$toto
$ echo $(echo $MY_VAR)
$toto
1% случаев, например, когда ссылка на переменную указана в выражении eval, которая добавляет уровень косвенности:
$ MY_VAR='$toto'
$ eval echo $MY_VAR
$
Но это, очевидно, ожидаемый результат, и опять, то с любым другим специальным символом оболочки внутри переменной следует считать плохую практику таким же образом:
$ MY_VAR='&&'
$ eval echo $MY_VAR
bash: syntax error: unexpected end of file
(правда, что использование eval часто является плохой практикой, именно по этой причине ).
Итак, нет, наличие знака доллара в переменной оболочки / среды не является плохой практикой, по крайней мере, не более, чем с любым другим специальным символом оболочки.
Чтобы ответить на ваш точный вопрос:
Да, плохой практике иметь знак доллара в значении переменной окружения. Однако это не то, что на самом деле показывает фрагмент кода.
MY_VAR="$toto"
$ является специальным символом для вашей оболочки (будь то bash или dash) и если не защищен от переменной
Для этого вам нужно будет сбежать из $, либо с обратной косой чертой непосредственно перед ней, либо с помощью символа доллара в значении MY_VAR. одинарные кавычки вокруг него.