나는 이 스크립트를 사용하고 있습니다:
#!/bin/bash
case "$1" in
start)
echo "Iniciando servicio"
export http_proxy=socks5://192.168.1.2:9090
export https_proxy <----I don't want it exported
;;
stop)
echo "Deteniendo servicio"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
그러나 그것을 실행할 때 env
내가 만든 변수를 얻지 못합니다 :(
root@:~# /etc/init.d/a start
Iniciando servicio
root@:~# env
SHELL=/bin/bash
NO_AT_BRIDGE=1
PWD=/root
LOGNAME=root
LS_OPTIONS=--color=auto
HOME=/root
TERM=xterm
USER=root
SHLVL=1
SSH_CLIENT=
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
SSH_TTY=/dev/pts/0
TEXTDOMAIN=Linux-PAM
_=/usr/bin/env
소스 코드를 사용하여 스크립트를 실행해 보았지만 전체 변수 대신 개별 변수를 내보내려고 하기 때문에 작동하지 않습니다.
답변1
스크립트를 실행하면 새로운 bash 프로세스가 시작됩니다. 스크립트가 끝나면 프로세스가 종료되고 환경 변수도 함께 사용됩니다.
source
스크립트를 실행하는 대신 스크립트가 필요합니다 .
source /etc/init.d/a start
export
또한 명령에서 어떤 출력도 얻지 못하므로
export http_proxy=socks5://192.168.1.2:9090 >> ~/.bashrc
.bashrc에는 아무것도 추가되지 않습니다.