Не может добавить для СОЕДИНЕНИЯ КАНАЛОМ в ~./bashrc использования $Home

Я просто хочу включить путь ~/.bashrc как:

export PATH="$Home/gg/gamit/bin:$Home/gg/kf/bin:$Home/gg/com:$PATH"

Но когда я использую echo $PATH показывает его как:

/gg/gamit/bin:/gg/kf/bin:/gg/com:/home/sandypuja/bin:/home/sandypuja/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin 

Но мне нужен он для сходства с

/home/sandypuja/gg/gamit/bin:/home/sandypuja/gg/kf/bin:/home/sandypuja/gg/com:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin 

где sandypuja мое имя системы.

Как я могу исправить это?

1
задан 23 November 2019 в 17:21

1 ответ

Shell и переменные среды чувствительны к регистру (как [1 120], steeldriver говорит ). Home не та же переменная как HOME. HOME переменная среды содержит путь к Вашему корневому каталогу. Home переменная обычно не существует; нет ничего специального об имени Home.

, Когда переменная не определяется, работая , расширение параметра на ней приводит к пустой строке (как [1 122], ванадий ссылается на [1 122]), который является тем, что Вы видите.

Замена $Home с $HOME должна решить проблему:

export PATH="$HOME/gg/gamit/bin:$HOME/gg/kf/bin:$HOME/gg/com:$PATH"
<час>

Примечание, что Вы не должны обычно устанавливать переменные среды, особенно PATH, в ~/.bashrc, потому что:

  1. , Что файл только получен [1 110] оболочки, таким образом, они будут недоступны во многих важных контекстах включая графические программы, не запущенные от [1 111].
  2. , Что файл получен весь интерактивный bash оболочки, поэтому при запуске одной интерактивной оболочки удара от другого дочерней оболочке изменят путь снова. Таким образом, имя каталога будет предварительно ожидаться многократно. Влияние производительности незначительно, но это может довольно сбивать с толку при осмотре значения переменной.

, Если Вы хотите установить или изменить переменную среды как [1 113] путем редактирования файла, который получен оболочками, , можно использовать ~/.profile, а не ~/.bashrc .

(я говорю" особенно PATH", потому что очень распространено включать старое значение [1 117] в новом значении, как Вы делаете, и когда это сделано в [1 118], это создает раздражение, описанное в № 2 выше.)

2
ответ дан 7 December 2019 в 13:13

Другие вопросы по тегам:

Похожие вопросы: