【发布时间】:2020-01-03 06:09:10
【问题描述】:
想要验证站点域是否包含“com”。假设我有 shell 变量作为
export FIRST_URL="http://www.11111.com"
export SECOND_URL="http://www.22222.org"
用户使用参数(部分shell变量)调用Python脚本
python2.7 FIRST # OR
python2.7 SECOND
Python 脚本是,
import sys, os, subprocess
PART_URL = sys.argv[1]
print( "PART_URL=",PART_URL)
COMPLETE_URL = PART_URL+'_URL' # Formed a full shell varibale
cmd_str='echo {} | grep \"com\".format(COMPLETE_URL)' # equivalent to echo $FIRST_URL | grep com
my_site=subprocess.check_output(cmd_str, shell=True) # Note we cant use subprocess.run() in Python Python 2.7
print("The validated Site is ", my_site)
输出应该是“验证的站点是http://www.11111.com”
【问题讨论】:
-
为什么不直接将 URL 本身作为参数传递呢?为什么你要向
grep发送检查格式而不是在脚本本身中进行验证?
标签: python-2.7 shell subprocess