Есть трюк, который вы можете использовать в любое время, когда вам нужно, чтобы оболочка принимала в качестве единственного аргумента нечто, имеющее как одинарные, так и двойные кавычки.Поскольку оболочка не позволяет вам избегать кавычек, вам необходимо превратить ее в несколько примыкающих строк в кавычках, переключаясь между одинарными и двойными кавычками, чтобы защитить содержимое внутри.Это некрасиво, но это работает.Например, чтобы
He said "It's done"
был единственным аргументом, вы можете добавить три строки:
'He said "It' - protect this substring with single quotes
"'" - protect this substring with double quotes
's done"' - protect this substring with single quotes
, чтобы получить:
'He said "It'"'"'s done"'
В вашем случаеэто было бы очень уродливо:
su postre -c 'psql -c "create database '"$var with encoding 'unicode';"'" -U edumate template1'