2017-01-09 4 views
1

変数を文字列としてハードコードしないようにしたいのですが、私は少し動的にしたいと思います。変数を保存してbashでエクスポートする方法

export SERVER_IP=45.100.1.100 #this works but it is hardcoding 

IP = short myip.opendns.com @resolver1.opendns.com #grabs IP and should save it into a variable 
export SERVER_IP = IP #exports IP to an environmental variable 

どのようにこれは実際に動作させるために:

私はこのような何かをしたいですか?ありがとう。

+1

'=': 'IP ='のまわりにはスペースを入れません。 'export'に '$'がありません(安全のための引用符) 'export SERVER_IP =" $ IP "' – cdarke

+0

見てください:http://www.shellcheck.net/ – Cyrus

答えて

1

あなたが使用することを意図コマンドは(おそらく)である:

dig +short myip.opendns.com @resolver1.opendns.com 

さて、変数にコマンドのSTDOUTを保存するには、コマンド置換、$()必要があります。そこにも

ip=$(dig +short myip.opendns.com @resolver1.opendns.com) 

を変数宣言の=の周りの空白は、bashであってはなりません。

同じ名前の環境変数が誤って上書きされるのを防ぐため、bashの変数名にすべて大文字を使用しないでください。

+0

私は次のようにします:私はまだそれを実行しようとします: ルート@ vvv:/ srv/www /展開#server_ip server_ip:コマンドが見つかりません – funguy

+1

@funguy変数はコマンドではありませんが、値だけに展開することはできます。ヒント: 'echo" $ server_ip "' – heemayl

+0

これが見つかりました。ありがとう。 – funguy

関連する問題