向bash中的嵌入式python脚本传递参数

2024-06-07 06:35:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我在向嵌入的bash脚本传递参数时遇到困难。在

 #!/bin/bash/
 function my_function() {
 MYPARSER="$1" python - <<END
 <<Some Python Code>>

 class MyParser(OptionParser):
 def format_epilog(self, formatter):
    return self.epilog

 parser=MyParser(version=VER, usage=USAGE, epilog=DESC)

 parser.add_option("-s", "--Startdir", dest="StartDir", 
               metavar="StartDir"
             )
 parser.add_option("-r", "--report", dest="ReportDir", 
               metavar="ReportDir"
             )
<<More Python Code>>

 END
 }

 foo="-s /mnt/folder -r /storagefolder/"
 my_function "$foo"   

我已经读过Steve's Blog: Embedding python in bash scripts这对我有帮助,但我仍然无法通过论证。我尝试了parser和myparser作为环境变量。在

定义2美元并单独传递它们是否简单?在

谢谢


Tags: selfbashaddparsermyparsermycodefunction
1条回答
网友
1楼 · 发布于 2024-06-07 06:35:41

你太复杂了。为什么要搞解析器呢

value="hello" python -c 'import os; print os.environ["value"]'

或者,对于较长的脚本:

^{pr2}$

如果需要设置sys.argv以与现有代码兼容:

python - first second <<<'import sys; print sys.argv'

因此:

args=( -s /mnt/folder -r /storagefolder/ )
python - "${args[@]}" <<'EOF'
import sys
print sys.argv # this is what an OptionParser will be looking at by default.
EOF

相关问题 更多 >