ENV=raw_input("Enter Environment (QA/Prod):")
print(ENV)
os.system('aws ec2 describe-instances --filters "Name=tag:Environment,Values=ENV" "Name=instance-state-code, Values=16" > FilteredOP')
您好, 我非常喜欢Python。这里, 我无法在os.system命令中调用ENV变量。语法有什么问题吗?
答案 0 :(得分:1)
ENV
的值不会在字符串中被神奇地替换。
请考虑以下事项:
>>> ENV = 'debug'
>>>
>>> 'Value=ENV'
'Value=ENV'
>>>
>>> 'Value={}'.format(ENV)
'Value=debug'
因此,您不希望硬编码 ENV
作为字符串的一部分,而是使用字符串格式插入ENV
的值:
os.system('...Values=.{}...'.format(ENV))
但是,subprocess.check_output
是您可能希望结帐的更清晰的选择。
答案 1 :(得分:0)
了解格式化输出,在您的ENV中将其视为字符串“ENV”。
ENV=raw_input("Enter Environment (QA/Prod):")
print(ENV)
os.system('aws ec2 describe-instances --filters "Name=tag:Environment,Values={}" "Name=instance-state-code, Values=16" > FilteredOP'.format(ENV))
答案 2 :(得分:0)
试试这个
ENV=raw_input("Enter Environment (QA/Prod):")
print(ENV)
os.system('aws ec2 describe-instances --filters "Name=tag:Environment,Values=%s" "Name=instance-state-code, Values=16" > FilteredOP'%(ENV))