嘿,我正在尝试将一些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"