what caused no event found?

I tried to run nohup command line on my Linux server to connect to a remote server, then execute Oracle binary to run a process at background. My Linux information looks like this:

oracle@myserver:/opt/oracle/scripts
$ uname -a
Linux myserver.domain.com 2.6.18-194.32.1.0.1.el5 #1 SMP Tue Jan 4 16:26:54 EST 2011 x86_64 x86_64 x86_64 GNU/Linux

Then, I run command line like this:

oracle@myserver:/opt/oracle/scripts
$ nohup dgmgrl -silent sys/password@primary �start observer' &

The returning error message like this:

-bash: !@primary: event not found

What caused this "event not found" ? is the bash shell or by my oracle account login? I loginto Linux server with my individual passowrd, Then I
$sudo su - oracle, then enter my individual passowrd again into oracle user login path.

Then I run nohup command as sudo oracle. Is this the reason? Please help. Thanks.

You mean you're actually running dgmgrl with a password specified on the command line? That doesn't sound like a good idea.... But anyway. It's called history expansion and acts on the exclamation. It's silly nonsense that only happens in an interactive shell, for example:

mute@eeepc:~$ echo lkajdf!@primary
bash: !@primary: event not found

Either put single quotes around the argument, or turn it off with: set +H