bash程序中的Python文件测试线失败,语法错误



嘿,我正在尝试将一些PY集成到我的Shell脚本中并跨越以下错误,我的报价应该引用我的变量,但看起来就像它没有做我期望的事情一样,有人可以帮助我解决这个问题吗?

#!/bin/bash
host='user@localhost' 
path='/home/user/file' 
python -c "return subprocess.call(['ssh', '$host', 'test -e ' + pipes.quote($path)]) == 0"
  File "<string>", line 1
    return subprocess.call(['ssh', "user@localhost", 'test -e ' + pipes.quote(/home/jdaniel/sent)]) == 0
                                                                                 ^
SyntaxError: invalid syntax
python -c "return subprocess.call(['ssh', '$host', 'test -e ' + pipes.quote("$path")]) == 0"

我会假设

旁边..你为什么不只是从bash打电话给ssh?通过这种方式使用Python,您将获得什么好处?并且使用-c标志时,您不需要使用import subprocess吗?

我会选择在python或bash中执行整个程序...但是像这样混合它们有点愚蠢(尤其是考虑到您的Python代码所做的)

您需要更改此

pipes.quote($path)

to

pipes.quote('$path')

作为pipes.quote()期望字符串

我会说最好使用外壳代替python

#!/bin/bash
host='user@localhost' 
path='/home/user/file' 
ssh -q $host "test -e $path"

相关内容

  • 没有找到相关文章

最新更新