Замена переменной $PATH

Я использовал это для добавления к ПУТИ:

APXS2=/usr/local/apache/bin/apxs PATH=$PATH:/usr/local/apache/bin passenger-install-apache2-module

и мой ПУТЬ теперь похож на это:

/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/courier-imap/sbin:/usr/lib/courier-imap/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin:

Теперь я хочу удалить это, я добавил. Как сделать это?

0
задан 24.02.2011, 00:18

4 ответа

Лучший способ мог бы быть для простого хранения копии пути прежде, чем изменить его.

PATH_BAK=$PATH
PATH=...
...
PATH=$PATH_BAK
1
ответ дан 24.11.2019, 06:44

Просто выйдите из системы, войдите в систему снова, и Ваш ПУТЬ будет сброшен.

1
ответ дан 24.11.2019, 06:44

Если Вы забыли создавать резервное копирование, можно использовать удаление/замену подстроки.

Удаление подстроки

${string#substring}

Замена подстроки

${string/substring/replacement}

См. эту ссылку http://www.museum.state.il.us/ismdepts/library/linuxguides/abs-guide/string-manipulation.html

0
ответ дан 24.11.2019, 06:44

Данный/usr/local/apache/bin не находится в '... моем ПУТИ, теперь похож на это...' - что Вы думаете, что добавили? Принятие Вы находитесь на ударе или ksh - Вы на самом деле не изменили путь, потому что Вы не экспортировали его. Таким образом, я сомневаюсь, что необходимо удалить что-либо.

Например.

$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$ PATH=$PATH:/foo /bin/ls
aFile
$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$ # PATH did not alter

По сравнению с:

$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$ export PATH=$PATH:/foo
$ /bin/ls
aFile
$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/foo
$ #PATH modified.

Таким образом, если Вы не экспортировали новый ПУТЬ к оболочке, Вы вызываете команду от ПУТИ, не изменился.

0
ответ дан 24.11.2019, 06:44

Теги

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