# sh/$'s contents are quasiquoted, allowing direct or string arguments
# so you need to unquote , variables:
(def out (file/open "trust-db.txt" :w))
(sh/$ "gpg" "--export-ownertrust" > ,out) # > requires an opened file object
(file/close out)
# note how > requires an opened file object
(with [out (file/open "trust-db.txt" :w)]
(sh/$ gpg --export-ownertrust > ,out))