Я пытаюсь сделать сценарий, который дает мне мой текущий общедоступный 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, переменная на самом деле печатается, она не может быть снова использована несколько раз как переменная среды, я осматривал эту проблему без удачи, любая справка будет действительно цениться
Отредактируйте ~/.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