【问题标题】:How to run a Bash Script file in Python with arguments如何在 Python 中使用参数运行 Bash 脚本文件
【发布时间】:2021-06-16 12:30:50
【问题描述】:

我希望使用 python 运行以下 bash 脚本:

sed -n -e '/SCN/,/^\s*$/p' $@ > Junction-Links.txt

bash 脚本保存为 ext-jun-links.sh,我想使用 Python 运行它以传递文件名来代替 $@。

我目前正在尝试使用以下代码:

import subprocess
from subprocess import call
    
subprocess.run(["./ext-jun-links.sh","NETL1405.TXT"], shell=True)

但是,这给了我以下错误:

'ext-jun-links.sh' is not recognized as an internal or external command, operable program or batch file.

有没有办法解决这个错误?使用带有以下代码的 PowerShell 时,bash 文件运行良好,所以这不是问题:

bash ext-jun-links.sh 'NETL1405.TXT'

【问题讨论】:

    标签: python bash subprocess


    【解决方案1】:

    我认为这是因为您试图通过 PowerShell 执行 bash 脚本。

    bash ext-jun-links.sh 'NETL1405.TXT'
    

    这是可行的,因为您将 ext-jun-links.sh 和 'NETL1405.TXT' 作为参数提供给 bash。

    尝试:

    subprocess.run(["bash", "./ext-jun-links.sh","NETL1405.TXT"], shell=True)
    

    【讨论】:

    • 你真的需要shell=True吗?
    猜你喜欢
    • 1970-01-01
    • 2015-07-05
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 2018-03-14
    • 2021-04-03
    • 2020-05-20
    相关资源
    最近更新 更多