Я пытаюсь выполнить команду внутри контейнера postgres из сценария оболочки.Это то, что я до сих пор:
kubectl exec -it <postgres_pod> -n <deployment> -- bash -c "psql -U postgres -d database -c 'select count from table where name='FOO';'"
Я получаю следующую ошибку:
ERROR: column "foo" does not exist
LINE 1: select count from table where name=FOO;
^
Запрос выполняется нормально внутриконтейнер, так что должно быть что-то не так с тем, как я передаю команду.Я попробовал другой запрос:
kubectl exec -it <postgres_pod> -n <deployment> -- bash -c "psql -U postgres -d database -c 'select * from table;'"
Это работает нормально.Итак, я предполагаю, что это что-то с тем, как я передаю предложение where where name='FOO'
.Как я могу заставить это работать.Пожалуйста, помогите мне.
Обновление:
Попытка выхода с использованием:
1: двойные кавычки
kubectl exec -it <postgres_pod> -n <deployment> -- bash -c "psql -U postgres -d database -c 'select count from table where name=\"FOO\";'"
ERROR: column "FOO" does not exist
LINE 1: select count from table where name="FOO";
^
2: одинарные кавычки
kubectl exec -it <postgres_pod> -n <deployment> -- bash -c "psql -U postgres -d database -c 'select count from table where name=\'FOO\';'"
bash: -c: line 0: unexpected EOF while looking for matching `''
bash: -c: line 1: syntax error: unexpected end of file
command terminated with exit code 1