python 如何调用带参数的shell脚本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 如何调用带参数的shell脚本相关的知识,希望对你有一定的参考价值。
调用带参数的脚本,需要首先设置,举例如下:
test.py按行解释如下:
脚本中有汉字的话,需要声明文件编码格式;
导入sys模块,这个模块是用来获取参数列表的;
sys.argv是一个列表,第一个是文件名,之后依次是参数列表;
打印输出,这一步不需要多讲;
保存到c:\\users\\YYC\\Desktop\\test.py;
调用操作步骤:
打开命令行;
输入python 文件名 第一个参数 第二个参数.....(参数之间用空格区分);
一定要注意参数个数,要以文件名开始。
从 shell 调用 python 脚本,但将配置文件的位置作为参数传递
【中文标题】从 shell 调用 python 脚本,但将配置文件的位置作为参数传递【英文标题】:Calling a python script from shell but passing the location of config file as a parameter 【发布时间】:2018-12-20 22:44:06 【问题描述】:如何从 python 脚本(Ubuntu shell)调用函数,同时传递配置参数?相关的 SO post 似乎没有解决这个问题。
这是我现在拥有的:
$ python -c ' from python_library import * ; function() ; -config /path/to/config/file '
上述失败。以下(以及许多其他)组合也是如此:
$ python -c ' from python_library import * ; function() -config /path/to/config/file '
或
$ python -c ' from python_library import * ; function() ; -config "/path/to/config/file" '
谢谢!
【问题讨论】:
` -config "/path/to/config/file"` 不是python代码,为什么要在引用的命令中包含它 我正在尝试将参数(配置文件)传递给我的脚本,而原始帖子中包含的示例是失败的尝试。 【参考方案1】:您需要将 conf arg 作为 python 的另一个参数提取出来
$ python -c ' from python_library import * ; function()' -config /path/to/config/file
【讨论】:
它成功了(没有单独的'-',它包含在您的原始帖子中),谢谢! 如果您想在末尾添加&
以便您的命令在后台运行并释放您的 shell 提示符以发出另一个命令?【参考方案2】:
您可以为此使用环境变量:
MYPARAMETERS="-config /path/to/config/file" python -c "import os,sys;sys.argv = os.environ['MYPARAMETERS'].split(); import python_library import * ; function()"
【讨论】:
谢谢安德烈!以上是关于python 如何调用带参数的shell脚本的主要内容,如果未能解决你的问题,请参考以下文章