私はこのスクリプトを使用しています:
#!/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には何も追加されません。