2015-03-18 3 views
0

Я хочу создать host_install.py из переменных bash. Так что я попытался следующее:Как передать переменную 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

ответ

1

Переменные среды доступны через os.environ

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

Python default installation на окнах C:\Python. Если вы хотите узнать, во время работы python вы можете сделать:

import sys 
print sys.prefix 
Смежные вопросы