以下效果很好:
ssh plxch1035.pdx.xxxxxx.com "sqlite3 /p/hdk/rtl/proj_data/shdk74/fe_data/ipci/ipci.db 'select * from tools'"
当我想要一个特定的工具行时:
ssh plxch1035.pdx.xxxxxx.com "sqlite3 /p/hdk/rtl/proj_data/shdk74/fe_data/ipci/ipci.db 'select * from tools where name='bscan''"
错误是
SQL error: no such column: bscan
我已确认列名 has 的存在bscan
。
我假设我的引号被搞乱了,我什至尝试转义周围的单引号bscan
(使用 ''')
答案1
OT1Hssh
不要求远程命令行是单个参数; OTOH 通过本地 shell(到 ssh)获取报价和远程 shell(到 sqlite3)很困难,但是 sqlite3 在 stdin 上接受 SQL 命令(带有 ;)而不是作为参数,这更容易,因为 ssh 通常透明地通过 stdin(以及 stdout 和 stderr):
echo "select * from tools where name='bscan';" | ssh [user@]host sqlite3 db
或者如果您的 shell 支持这里字符串(bash、ksh、zsh):
ssh [user@]host sqlite3 db <<<"select * from tools where name='bscan';"