2017-08-01 1 views
1

Ich habe einen einfachen kleinen Bash-Skript, das nach dem Passwort gefragt wird und es um die Umwelt exportieren:Warum wird mein Bash-Skript nicht in meine Umgebung exportiert?

printf "Proxy authentication failed.\n" 
read -p "Enter Password to try again: " mypassword 
printf "Proxy authentication succeeded\n" 
export PASSWORD="mypassword" 

Jedoch, wenn ich versuche, es zu laufen, wird es nicht in die Umwelt exportieren:

[email protected]:/tmp$ sh vaWfKh.sh 
Proxy authentication failed. 
Enter Password to try again: test 
Proxy authentication succeeded 
[email protected]:/tmp$ printenv 
CLUTTER_IM_MODULE=xim 
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01; 
... 
XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg 
PATH=/home/baal/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/baal/.rvm/bin:/home/baal/.rvm/bin 
LESSOPEN=| /usr/bin/lesspipe %s 
GTK_IM_MODULE=ibus 
_=/usr/bin/printenv 

Wie kann ich über ein Bash-Skript in eine Umgebungsvariable exportieren?

Antwort

1

Sie müssen das Skript source oder . vor ihm laufen, um eine Variable im Skript zu exportieren -

Hinweis: Sie benötigen eine mypassword Variable, um zu interpolieren, um sie Ihren Umgebungsvariablen zu setzen.

Lassen Sie uns sagen, dass dies Ihre ./myscript.sh

#!/bin/bash 

printf "Proxy authentication failed.\n" 
read -p "Enter Password to try again: " mypassword 
printf "Proxy authentication succeeded\n" 
export PASSWORD=${mypassword} 

In Ihrem Terminal laufen entweder:

. ./myscript.sh 

Oder

source ./myscript.sh 
+0

Das funktioniert auch nicht, es Sourcing ich meine – arm67146

+0

@ arm67146 Haben Sie versucht, Ihr Skript so zu aktualisieren, dass es die Interpolation enthält? Ich habe dieses aktualisierte Skript lokal getestet und es hat für mich funktioniert. –

+0

Hey, ja, ich habe es herausgefunden, ich rufe es durch eine andere Anwendung an und der Pfad wurde durcheinander gebracht. Danke, es funktioniert! – arm67146

Verwandte Themen