嘿伙计们,我正在尝试将一些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
答案 0 :(得分:2)
python -c "return subprocess.call(['ssh', '$host', 'test -e ' + pipes.quote(\"$path\")]) == 0"
我会假设
作为旁边..为什么你不只是从bash调用ssh?通过这种方式使用python你有什么好处?使用import subprocess
标志时,您不需要使用-c
吗?
我会选择在python或bash中完成整个程序......但是将它们混合起来感觉有点傻(特别是考虑到你的python代码的作用)
答案 1 :(得分:1)
您需要更改此
pipes.quote($path)
到
pipes.quote('$path')
因为pipes.quote()需要一个字符串
我会说最好使用shell而不是python
#!/bin/bash
host='user@localhost'
path='/home/user/file'
ssh -q $host "test -e $path"