Перезапись переменной среды в Linux - PullRequest
0 голосов
/ 12 ноября 2018

Я хочу добавить путь к переменной PATH.

Я скопировал переменную $PATH в файл с именем t1, используя echo

echo $PATH > t1

я тогда отредактировал t1

nano t1

Я добавил свой путь /usr/local/batch: в начало списка путей и сохранил t1.

Теперь я хочу сохранить t1 в $ PATH и перезаписать $ PATH. например, * 1 016 *

cat t1 > $PATH (скажем), но я получаю предупреждение "неоднозначное перенаправление".

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

Ответы [ 4 ]

0 голосов
/ 13 ноября 2018

Если вы хотите использовать редактор для редактирования переменной без, вы можете передать ее утилите vipe из moreutils и затем прочитать ее обратно.

PATH=$(printf '%s\n' "$PATH"|EDITOR=nano vipe)

( Для редактирования PATH, в частности, у меня есть функция, которая также переводит : в новые строки и обратно:

path_edit () 
{ 
    PATH="$(printf '%s' "$PATH" |tr : '\n'|vipe | tr '\n' : |sed 's/:$//')"
}

)

Если у вас нет vipe, вы можете заменить его на:

vipe(){ sh -euc 't=; trap "rm -f $t" EXIT INT TERM; 
                 t=$(mktemp); cat>$t; ${EDITOR:-vi} $t <>/dev/tty>&0; cat $t'; }
0 голосов
/ 12 ноября 2018

Это более общий способ расширения переменной PATH в системе UNIX / Linux:

export PATH=/this/is/the/new/directory:$PATH

Удачи

0 голосов
/ 12 ноября 2018

Если вы действительно хотите прочитать PATH из файла:

export PATH=`cat t1`
0 голосов
/ 12 ноября 2018

Поскольку ">" будет перезаписывать содержимое файла, вы можете попробовать ">>".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...