Я просто хочу включить путь ~/.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
мое имя системы.
Как я могу исправить это?
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
, потому что:
bash
оболочки, поэтому при запуске одной интерактивной оболочки удара от другого дочерней оболочке изменят путь снова. Таким образом, имя каталога будет предварительно ожидаться многократно. Влияние производительности незначительно, но это может довольно сбивать с толку при осмотре значения переменной. , Если Вы хотите установить или изменить переменную среды как [1 113] путем редактирования файла, который получен оболочками, , можно использовать ~/.profile
, а не ~/.bashrc
.
(я говорю" особенно PATH
", потому что очень распространено включать старое значение [1 117] в новом значении, как Вы делаете, и когда это сделано в [1 118], это создает раздражение, описанное в № 2 выше.)