Скорее всего, где-то есть скрипт, который перезаписывает переменную path. Попробуйте следующее, чтобы сузить область установки переменной.
Посмотрите, есть ли переменная окружения, перезаписывающая путь[118372].
logout + log обратно в
Посмотрите, есть ли у новой оболочки такой же путь
Посмотрите, есть ли у sudo с начальным логином такой же путь
Похоже, вы уже проверили свои ~/.bashrc и ~/.bash_profile. Проверьте, нет ли скриптов в /etc/profile[118026].
Вы можете использовать SED
, чтобы преобразовать все /
в \
, следующей командой:
sed 's/\//\\/g'
Пример:
$ echo $PWD | sed 's/\//\\/g'
\home\pandya
Другой способ использовать TR
:
tr '/' '\\'
вышеуказанной командой TR
преобразует все /
с \
; Пример:
$ echo $PWD | tr '/' '\\'
\home\pandya
Я не совсем уверен, что вы пытаетесь сделать, но изменить косую черту очень просто:
$ printf '%s\n' "${PWD//\//\\}"
\home\terdon
Здесь используются возможности ksh для управления строками также доступен в bash
. В частности, $ {foo // bar / baz /}
заменит все вхождения строки bar
на baz
в переменной $ foo
. Поскольку /
и \
являются специальными символами, их необходимо экранировать ( \\
и \ /
), чтобы это работало с ними. . Вышеупомянутое эквивалентно:
pwd | sed 's#/#\\#g'