Seems that bash interprets exclamation points as syntax, not as part of the password. So I can't use samba unless I change the password and remove "!" from it.
This is a bash issue, not a Samba bug. $ smbclient //localhost/public -U 'jerry%test!' Domain=[FARSCAPE] OS=[Unix] Server=[Samba 3.1.2pre1-SVN-build-5829] smb: \>