Tendo problemas com o comando sqlite3 ssh (estou assumindo aspas ruins)

0

O seguinte funciona muito bem:

ssh plxch1035.pdx.xxxxxx.com "sqlite3 /p/hdk/rtl/proj_data/shdk74/fe_data/ipci/ipci.db 'select * from tools'"

Quando quero uma linha de ferramenta específica:

ssh plxch1035.pdx.xxxxxx.com "sqlite3 /p/hdk/rtl/proj_data/shdk74/fe_data/ipci/ipci.db 'select * from tools where name='bscan''"

O erro é

SQL error: no such column: bscan

Confirmei que a existência do nome da coluna tem bscan .

Estou assumindo que minhas citações estão confusas e eu até tentei escapar das aspas simples em torno de bscan (usando '' ')

    
por mcwilk 16.11.2017 / 01:20

1 resposta

1

OT1H ssh não requer que a linha de comando remota seja um único argumento; OTOH obtendo aspas através do shell local (para ssh) e o shell remoto (para sqlite3) é difícil, mas sqlite3 aceita comandos SQL (com;) em stdin em vez de como um argumento é mais fácil porque ssh normalmente passa através de stdin (e stdout e stderr) de forma transparente:

 echo "select * from tools where name='bscan';" | ssh [user@]host sqlite3 db

ou se o seu shell suporta herestring (bash, ksh, zsh):

 ssh [user@]host sqlite3 db <<<"select * from tools where name='bscan';"
    
por 16.11.2017 / 02:16

Tags