将shell脚本变量作为参数传递给Python脚本
我正在写带参数的shell脚本将shell脚本变量作为参数传递给Python脚本,python,shell,unix,Python,Shell,Unix,我正在写带参数的shell脚本 while getopts ":i:o:m" opt; do case $opt in i) a="$OPTARG" ;; o) b="$OPTARG" ;; m) c="$OPTARG" ;; \?) echo "Invalid option -$OPTARG" >&3 ;; esac done 那么我补充说 python filename.py a b c 变量名不是
while getopts ":i:o:m" opt; do
case $opt in
i) a="$OPTARG"
;;
o) b="$OPTARG"
;;
m) c="$OPTARG"
;;
\?) echo "Invalid option -$OPTARG" >&3
;;
esac
done
那么我补充说
python filename.py a b c
变量名不是变量的值,而是发送给Python程序
请帮助解决此问题。您可以按名称访问环境变量,但需要导出它们 在狂欢节上
myvariable="something"
export myvariable
关于python
import os
print os.environ["myvariable"]
当您想要获取shell中变量的值时,请使用$variable\u name。 请参见下面的示例
root@s:/tmp# cat t.sh
#!/bin/sh
a="test"
b="test2"
c="test3"
python test.py $a $b $c
root@s:/tmp# cat test.py
#!/usr/bin/python
import sys
print sys.argv[1:]
root@s:/tmp# ./t.sh
['test', 'test2', 'test3']
使用
“$a”
而不是a
我想你忘了添加$
?用法:python filename.py“$a”“$b”“$c”
。。。在shell脚本中,需要在变量之前使用$
。顺便说一句,我还添加了安全性的引号,否则如果值中有空格,事情就会破裂;-)一定要了解shell脚本谢谢,它对我很有用