Закомментировать один шлюз. Тот, у которого нет подключения к Интернету:
#gateway 192.169.1.10
В стандартной конфигурации может быть только один, и ваш маршрут показывает, что в данный момент используется внутренний шлюз.
Если за этим шлюзом есть другие сети, добавьте это:
post-up /sbin/ip route add 192.169.X.0/24 via 192.169.1.10
post-down /sbin/ip route del 192.169.X.0/24 via 192.169.1.10
для каждой сети за внутренним шлюзом.
export PATH=$(echo ${PATH} | sed -r 's|/usr/local/cuda-9.0/bin||')
Или его более правильный вариант:
export PATH="$(printf '%s\n' "$PATH" | sed 's|/usr/local/cuda-9\.0/bin||')"
Обновляет содержимое переменной $PATH
оболочки, вызывающей эту команду, удаляя в ней первое вхождение /usr/local/cuda-9.0/bin
. Например, это изменит /bin:/opt/usr/local/cuda-9.0/bin/v2:/usr/local/cuda-9.0/bin
на /bin:/opt/v2:/usr/local/cuda-9.0/bin
, что вам не нужно.
Чтобы удалить полные элементы, вы можете:
export PATH="$(
printf ':%s:\n' "$PATH" |
sed '
:1
s|:/usr/local/cuda-9\.0/bin:|:|g; t1
s|^:||; s|:$|'
)"
Или с зш:
path=("${path[@]:#/usr/local/cuda-9.0/bin}")
Обратите внимание, что если $PATH
изначально содержал только /usr/local/cuda-9.0/bin
, то конечным результатом будет пустой $PATH
. А пустой $PATH
означает поиск исполняемых файлов в текущем каталоге , что вам не нужно. Если это возможно, вы можете сделать $PATH
что-то вроде /inexistent/to/disable/PATH/lookup
.
Обратите внимание, что в любом случае изменяется только переменная $PATH
оболочки, которая запускает этот код. Если вы хотите, чтобы это повлияло на переменную $PATH
оболочки, которая вызывает этот скрипт, вам нужно, чтобы эта оболочка была источником (, как с командой .
или source
), которая deactivate
] или сделайте deactivate
функцией этой оболочки.
Или, как вариант,вы можете заставить скрипт deactivate
выводить код оболочки, который потребуется для удаления этих записей из $PATH
(, например, добавив export -p PATH
после его изменения )и обязательно вызовите его как:
eval "$(deactivate)"
В оболочке, где вы хотите удалить эту запись из $PATH
.
Что-то вроде:
#! /bin/zsh -
path=("${path[@]:#/usr/local/cuda-9.0/bin}")
export -p PATH
Можно просто export PATH=/usr/sbin:/usr/bin
. Но ваш метод уже работает:
$ PATH=/usr/local/cuda-9.0/bin:/usr/sbin:/usr/bin:
$ export PATH=$(echo ${PATH} | sed -r 's|/usr/local/cuda-9.0/bin||')
$ echo $PATH
:/usr/sbin:/usr/bin:
Попытка установить PATH
в текущей среде путем запуска сценария невозможна.