首页 文章

/ bin / sh:1:语法错误:单词意外 - 使用Python的os.system()

提问于
浏览
1

我正在尝试从python执行shell命令 . 这是命令:

(flock -n 200 || (echo no; exit 1) && (echo yes; cat /home/user/Desktop/instructions.json; >/home/user/Desktop/instructions.json)) 200>>/home/user/Desktop/instructions.json

我试过os.system()或subprocess.call();但是我总是有同样的错误:

/bin/sh: 1: Syntax error: word unexpected

我认为问题是由括号引起的,但我不确定 .

我正在尝试阅读该文件,感谢cat然后删除其内容,如果它没有被锁定,否则只是echo no并退出 .

此命令在shell中有效 .

2 回答

  • 0

    要从python ad执行命令,它将在shell中使用 shell=true 作为参数:

    subprocess.call("your command", shell=true)
    

    this post

  • 0

    看来你正试图用Python锁定文件 .

    在您的情况下,您有两个机会:

    • 您可以使用python函数fcntl.flock()直接锁定文件

    • 您也可以使用一个简单的脚本sh,在其中编写 #!/bin/sh ,在开头

相关问题