我正在尝试从 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 读取该文件,然后删除其内容(如果它未锁定),否则只需回显 no 并退出。
该命令在 shell 中工作。
最佳答案
您似乎正在尝试在 Python 中锁定文件。
就您而言,您有两个机会:
- 可以使用python函数fcntl.flock()直接锁定文件
- 您还可以使用简单的脚本 sh,在开头写入
#!/bin/sh
关于python -/bin/sh : 1: Syntax error: word unexpected - Using os. system() 来自 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53496156/