You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flask中传递Python变量作为Shell脚本的参数?

解决Flask中传递文件名参数给Shell脚本的问题

你的代码错误在于使用check_output时,将脚本路径和参数放在了同一个字符串里,还额外添加了单引号。这种写法会让系统尝试执行一个名为./cl_download.sh '/session.txt'的命令,而非把session.txt作为参数传给cl_download.sh,这就是报错的核心原因。

正确的写法是将命令和参数拆分为列表的独立元素:

stdout = check_output(["./cl_download.sh", "session.txt"]).decode('utf-8')

subprocess模块会自动处理参数的传递,不需要手动添加引号,同时还能避免潜在的shell注入风险(如果参数来自用户输入,这种写法安全性更高)。

如果因特殊需求必须通过shell执行(不推荐),可以添加shell=True参数,此时命令可写成字符串形式:

stdout = check_output("./cl_download.sh session.txt", shell=True).decode('utf-8')

注意:使用shell=True时,若参数包含用户输入,一定要做好严格的校验和转义,防止恶意代码注入。

内容的提问来源于stack exchange,提问作者neel jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 17:35:22