bash: расширяющаяся переменная - PullRequest
1 голос
/ 04 марта 2011

Я пытаюсь добавить функцию к своему .bashrc, чтобы облегчить добавление $PWD к переменным окружения.Мне бы хотелось, чтобы функция принимала один аргумент - имя переменной, к которой добавляется рабочий каталог.Я думаю что-то вроде этого ...

function prependTo{ export $1=$PWD:\$$1 }

Возможно ли то, что я собираюсь сделать в bash?

1 Ответ

3 голосов
/ 04 марта 2011

Не используйте ключевое слово function, оно устарело и не является POSIX. Вместо этого сделайте это:

 prependTo(){ export $1=$PWD:${!1}; }

Объяснение

С man bash

Если первый символ параметра восклицательный знак, уровень переменная косвенность вводится. Баш использует значение переменной, сформированной из остальной части параметра как имя переменной; этот переменная затем расширяется и это значение используется в остальной части замещения, а не значение самого параметра. это известен как косвенное расширение.

...