2015-03-18 23 views
0

我想從bash變量創建host_install.py。 所以我曾嘗試以下操作:如何將bash變量傳遞到文件中

#!/bin/bash 

CM_HOST="10.0.5.99" 
CM_USER="admin" 
CM_PASSWORD="admin" 
CM_CLUSTER_NAME="cluster" 
INSTANCE_TYPE=`wget -q -O- http://169.254.169.254/latest/meta-data/instance-type` 

cat > /tmp/host_install.py <<EOF 
import socket 
import commands 
from time import sleep 

cluster_name = "$CM_CLUSTER_NAME" 
role_template = "$INSTANCE_TYPE" 

print cluster_name 
print role_template 

EOF 

chmod a+x /tmp/host_install.py 
/tmp/host_install.py 

這是打印的

$CM_CLUSTER_NAME 
$INSTANCE_TYPE 

代替

cluster 
c3.2xlarge 

我在這裏做什麼錯?

+0

如上所示,它對我來說工作正常。您顯示的錯誤是如果您引用了EOF,如'cat> /tmp/host_install.py <<「EOF」'會發生的錯誤。 – John1024 2015-03-18 21:09:29

回答

1

環境變量是通過os.environ

import os 
cluster_name = os.environ['CM_CLUSTER_NAME'] 
role_template = os.environ['INSTANCE_TYPE'] 

Python default installation訪問Windows上是C:\Python。如果你想知道在運行python的時候可以這樣做:

import sys 
print sys.prefix