Подсказка для Ввода данных пользователем и превращает его в переменную среды

Я пытаюсь сделать сценарий, который дает мне мой текущий общедоступный IP и просит у пользователя новый IP, который должен быть объявлен, поскольку переменная среды для человечности, однако даже tho ОСНОВНАЯ переменная работает, как предназначено ВЕДОМОЕ УСТРОЙСТВО, каждый не. вот минимальный образец моего сценария

#!/bin/bash 
echo $SHELLOPTS 
set -o allexport                #All variables are auto set to export
MASTER=`ip addr | grep inet | grep 10. | tail -1 | sed 's/^ *//g' | cut -d ' ' -f 2 | sed 's/\/.*$//g'`
echo Master IP is: $MASTER
echo Insert the new IP:
read input
SLAVE=$input
echo Master IP is: $MASTER
echo Slave IP is: $SLAVE

Даже tho, переменная на самом деле печатается, она не может быть снова использована несколько раз как переменная среды, я осматривал эту проблему без удачи, любая справка будет действительно цениться

enter image description here

1
задан 9 April 2019 в 02:42

1 ответ

Отредактируйте ~/.bashrc и добавьте к нижней части:

leonid@DevSSD:~$ tail -n 7  ~/.bashrc
getIP() {
  export MASTER=`ip addr | grep inet | grep 10. | tail -1 | sed 's/^ *//g' | cut -d ' ' -f 2 | sed 's/\/.*$//g'`
  echo "Master IP is: $MASTER"
  echo "Insert the new IP:"
  read input
  export SLAVE="$input"
}

Тип в приглашении оболочки: $ getIP

leonid@DevSSD:~$ getIP
Master IP is: 192.168.1.101
Insert the new IP:
10.0.0.1

Затем можно проверить, установлен ли var:

leonid@DevSSD:~$ env|grep MASTER
MASTER=192.168.1.101
leonid@DevSSD:~$ env|grep SLAVE
SLAVE=10.0.0.1
1
ответ дан 7 December 2019 в 15:04

Другие вопросы по тегам:

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