Bash: Создание переменной оболочки в сценарии bash, к которому я могу получить доступ из командной строки. - PullRequest
0 голосов
/ 21 июня 2020

У меня очень мало опыта работы с bash. С учетом сказанного мне нужно создать сценарий bash, который берет ваш текущий путь к каталогу и сохраняет его в переменной оболочки. Затем мне нужно иметь возможность набрать «echo $ shellvariable» и получить каталог, который я сохранил в этой переменной в сценарии bash. Это то, что у меня есть до сих пор.

#!/bin/bash
mypath=$(pwd)
cd $1
echo $mypath
exec bash

теперь, когда я go в командной строке и набираю "echo $ mypath", он ничего не выводит.

Ответы [ 3 ]

2 голосов
/ 21 июня 2020

Вы можете просто запустить source <file_with_your_vars>, это загрузит ваши переменные в ваш сценарий или сеанс командной строки.

> cat source_vars.sh
my_var="value_of_my_var"
> echo $my_var

> source source_vars.sh
> echo $my_var
value_of_my_var
0 голосов
/ 21 июня 2020

Hello

'env -i' дает контроль над тем, какие переменные получают оболочка / программа ...

#!/bin/bash
mypath=$(pwd)
cd $1
echo $mypath
env -i mypath=${mypath} exec bash

... т.е. с минимальным окружением.

0 голосов
/ 21 июня 2020

Вы должны export переменную, чтобы она существовала в новой exec редакционной оболочке:

#!/bin/bash
export mypath=$(pwd)
cd $1
echo $mypath
exec bash
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...