【问题标题】:How to pass bash variable to into file如何将bash变量传递给文件
【发布时间】:2015-05-21 20:41:48
【问题描述】:

我想从 bash 变量创建 host_install.py。 所以我尝试了以下方法:

#!/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

我在这里做错了什么?

【问题讨论】:

  • 如图所示,它对我来说很好用。您显示的错误是如果您在 cat &gt; /tmp/host_install.py &lt;&lt;"EOF" 中引用 EOF 会发生什么。

标签: python linux bash automation


【解决方案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

【讨论】:

    猜你喜欢
    • 2011-11-23
    • 2018-02-17
    • 2011-02-17
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    相关资源
    最近更新 更多