我正在执行查询,如下所示:
ssh user@XX.XX.1XX.XX "PGPASSWORD=myPassword psql -U psqlUser -h XX.XX.XX.XX -p 5432 -d myDB -c
'INSERT INTO table(\"CPU_IDLE_TIME\",\"TOTAL_SIZE\",\"USED_SIZE\",\"USED_STORAGE_P\") VALUES ($idlecputime,$totalSize,$usedSize,$usedStoragePercentage)';"
我通过snmpwalks获得此查询之前的值。为了使查询正常工作,值必须用单引号('')引起来。我尝试将单引号放在变量周围,但是每次出现错误时,因为查询已经被“'”包围。我似乎找不到引号的配置或对引号进行转义以使其正常工作。
变量的类型为var char,integer和float。
我遇到的一个错误:
ERROR: syntax error at or near ","
预先感谢您的帮助。
答案 0 :(得分:0)
使用printf
为您设置字符串格式
ssh user@XX.XX.1XX.XX "PGPASSWORD=myPassword psql -U psqlUser -h XX.XX.XX.XX -p 5432 -d myDB -c ""$(printf 'INSERT INTO table("CPU_IDLE_TIME","TOTAL_SIZE","USED_SIZE","USED_STORAGE_P") VALUES (%d, %d, %d, %d);' $idlecputime $totalSize $usedSize $usedStoragePercentage)"
$()构造在子shell中执行printf。