python -/bin/sh : 1: Syntax error: word unexpected - Using os. system() 来自 Python

标签 python shell subprocess os.system flock

我正在尝试从 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/

相关文章:

python - pdb 中的 'n' 使我进入 pdb.set_trace() 方法

python - 与从 python 3.5.2 源构建的 libpython3.5m.so 相比,libpython3.so 是什么?

python - 组合不同图像的 block 并产生新图像

linux - 如何将 "ps"的所有输出通过管道传输到 shell 脚本中以进行进一步处理?

python - 从子进程启动时如何停止 Bottle Web 服务器

python - PyQt4——添加文本编辑区动画示例

bash - 在 bash 脚本中使用变量名进行编译

c - 自定义输入,在命令行中的单词中间写入时文本会被覆盖

python - 从 python 启动 gnu screen ?

python - 重定向子进程标准输出