Есть ли основанный на курсоре интерфейс для изменения переменных среды?

239
Catskul

Мне часто нужно изменить небольшую часть длинной переменной окружения (особенно, например, пути), и сделать это, вставив объект в редактор и изменив его там, или эквивалентный.

Есть ли небольшая удобная утилита для редактирования переменных среды с курсором в командной строке?

Я полагаю, я всегда мог бы поднять один, но я надеюсь, что уже есть кое-что, о чем я просто не знаю.

0

2 ответа на вопрос

1
jlliagre

Это то, что я использую (синтаксис ksh, но должен работать только с bash):

function viPath { typeset _path=$ typeset _separator=$ eval echo "\$$_path" | tr $_separator '\n' >~/.path vi ~/.path eval _path=$(cat ~/.path | tr '\n' $_separator) eval $=$(eval echo $_path | sed 's/.$//') \rm ~/.path } 
Это выглядит многообещающе, но я так и не заработал. Мне придется повозиться с этим, когда у меня будет шанс. Catskul 12 лет назад 0
Что не работает? jlliagre 12 лет назад 0
Не уверен, но PATH пуст при сохранении / выходе, ": wq". Я все еще должен попытаться отладить. Catskul 12 лет назад 0
Я полагаю, вы используете его в качестве сценария оболочки. Это должна быть функция для сохранения переменной. jlliagre 12 лет назад 0
0
OldWolf

Не могу придумать тот, который позволил бы вам интерактивно редактировать его непосредственно в командной строке, но есть способы сделать его более удобным, чем то, что вы описываете. Если это краткосрочное изменение и вам просто нужно что-то добавить к пути, вы можете самостоятельно ссылаться на текущее значение. Например, в Bash:

PATH=$PATH:/ADDITIONAL/PATH 

Или, если вы хотите изменить приоритет, вы можете добавить

PATH=/ADDITIONAL/PATH:$PATH 

Вы также можете сохранить себя, вставив значение во временный файл

echo $PATH > tempfile.txt 

Если у вас есть более сложные или постоянные изменения, вы можете ссылаться и редактировать переменные окружения в вашем эквивалентном файле rc и / или профиля. Если они еще не представлены, вы можете использовать метод echo, чтобы перевести их в редактируемое состояние (просто используйте >> для добавления вместо перезаписи). Или, в vi, вы также можете использовать

:r!echo $PATH 

В Emacs это было бы

C-u M-! echo $PATH 

Чтобы вставить вывод в файл, над которым вы работаете.

Это все, что я делаю в данный момент. Я пытаюсь внести временные изменения в переменные, и я ищу что-то с меньшим количеством шагов, чтобы сгладить мой рабочий процесс. Catskul 12 лет назад 0

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