Как я вижу ...Символ без кавычек &
в командной строке отправляет задачу в фоновый режим, как описано, например, здесь: Linux: команда запуска в фоновом режиме .Так что все, что после &
символа игнорируется (или интерпретируется как отдельная команда) оболочкой * nix. Решение Просто попробуйте процитировать всю строку следующим образом:
sudo /usr/bin/pg_dump --file "/home/myuser/xyz_db/DB_BACKUP/db_file.backup" \
--verbose --format=t --blobs -v \
--dbname 'postgresql://111.222.333.444:5432/prod_live?password=123th@123th4&user=postgres'
Объяснение В предоставленном вами выводе строка [4] 8555
означает Background job #4 with process ID 8555 was started
А одинарные кавычки вокруг строки позволяют интерпретировать ее «как есть», без подстановки параметров и интерпретации других специальных символов.
PS: используйте синтаксис $'...'
для перевода специальных экранированных символов, таких как \n
\t
\uxxxx
и др.
Существует несколько примеров:
$ echo abc&defgh
[1] 3426
abc
defgh: command not found
[1]+ Done echo abc
Как вы можете видеть, выходные данные аналогичны предоставленным вами в части [x] xxxx
$ echo 'abc&defgh'
abc&defgh
В этом случае команда echo
печатает именно то, что вы хотитеИ последнее, но не менее важное:
$ echo '1: abc&\ndefgh'; echo $'2: abc&\ndefgh'
1: abc&\ndefgh
2: abc&
defgh