【问题标题】:Open a shell file and replace a sting inside it using python打开一个shell文件并使用python替换其中的一个sting
【发布时间】:2021-07-19 12:41:11
【问题描述】:

在这里,我使用 ssh 将一个 shell 脚本从我的系统传输到 raspberry pi 并在 Rpi 上运行该脚本

python3 paswd.py |  scp replace.py  pi@192.168.1.$i:
python3 paswd.py |ssh -tt pi@192.168.1.$i 'chmod u+x ~/'replace.py' && exit'

发生这种情况并且没有显示错误

替换.py


def replace():
    fout=open("launch.sh","rt")
    for line in fout:
        fout.close
        fout=open("launch.sh","wt")
        fout.write(line.replace('chromium-browser','chromium-browser --kiosk '))
    fout.close
replace()

launch.sh

echo "connected, launching browser"
chromium-browser & disown

replace.py 执行后没有得到要求的结果,我得到一个空的 launch.sh 或根本没有任何更改。如前所述,它没有显示任何错误。请让我知道我的错误在哪里。 saame 代码非常适合 .txt 文件,它将“chromium-browser”替换为“chromium-browser --kiosk”,但在 .sh 文件上没有得到它。

感谢您的帮助

【问题讨论】:

  • 在我看来像X-Y-problem。你到底为什么要这样做?如果您想参数化某些内容,请通过命令行参数或环境变量传递此信息。

标签: python bash shell raspberry-pi sh


【解决方案1】:

这将解决您的问题。

def replace():
    file_path = "launch.sh"
    find = "chromium-browser"
    replacement = "chromium-browser --kiosk"

    with open(file_path) as f:
        s = f.read()
    s = s.replace(find, replacement)
    with open(file_path, "w") as f:
        f.write(s)

replace()

【讨论】:

  • 你能检查一下这段代码在你的本地系统上是否也不能正常工作吗?看来远程服务器上可能还有其他问题导致此问题。
  • 谢谢...它有效..但是一个小错误你忘了调用函数..请编辑你的答案并调用函数
猜你喜欢
  • 2015-10-01
  • 2018-08-05
  • 2016-04-14
  • 2019-10-01
  • 1970-01-01
  • 2020-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多