python脚本运行shell脚本并接收shell脚本多个变量的传参
时间: 2023-07-30 21:13:12 浏览: 208
使用python执行shell脚本 并动态传参 及subprocess的使用详解
要在Python脚本中运行Shell脚本并接收多个变量的传参,你可以在`subprocess.run()`函数中使用`subprocess.PIPE`来捕获Shell脚本的输出,并使用`subprocess.communicate()`方法来获取输出结果。
以下是一个示例,演示如何在Python中运行Shell脚本并接收多个变量的传参:
Shell脚本(script.sh):
```bash
#!/bin/bash
# 接收三个参数并输出
echo "第一个参数:$1"
echo "第二个参数:$2"
echo "第三个参数:$3"
```
Python脚本:
```python
import subprocess
def run_shell_script(script_path, *args):
cmd = ["bash", script_path, *args]
result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
output = result.stdout.strip()
return output
# 运行Shell脚本并传递参数
output = run_shell_script("./script.sh", "value1", "value2", "value3")
print(output)
```
在这个示例中,我们定义了一个名为`run_shell_script()`的函数,该函数接收一个Shell脚本的路径和多个参数。在函数内部,我们构建一个包含Shell命令和参数的列表,并使用`subprocess.run()`函数来运行Shell脚本。
通过设置`stdout=subprocess.PIPE`,我们将Shell脚本的输出捕获到一个变量中。通过`result.stdout.strip()`,我们获取捕获的输出结果,并将其返回。
最后,我们调用`run_shell_script()`函数并传递Shell脚本路径和多个参数。输出结果将被打印出来。
请确保提供正确的Shell脚本路径,并根据实际情况修改参数的值。
希望这个示例能帮助到你!
阅读全文