Please look at these commands:
$ notify-send SYNC TIME!
$ notify-send 'SYNC TIME!'
$ notify-send "SYNC TIME!"
bash: !": event not found
$
The first two commands produce a notification bubble as expected. The third gives the error shown.
and
$ echo SYNC TIME!
SYNC TIME!
$ echo 'SYNC TIME!'
SYNC TIME!
$ echo "SYNC TIME!"
bash: !": event not found
$
Here as well, the echo
works for first two commands but not in the third.
More problems here (although I was not planning on using this): both notify-send "SYNC!TIME"
and echo "SYNC!TIME"
give bash: !TIME": event not found
.
But both notify-send
and echo
work with "SYNC! TIME"
Can someone please explain why the bash: !": event not found
error appears?
Best Answer
!
is the default history expansion character in Bash, see the section "HISTORY EXPANSION" in the Bash manpageHistory expansion doesn't take place if the
!
is enclosed by single quotes, as inHistory expansion doesn't take place if the
!
is followed by a space, tab, newline, carriage return, or=
, as inHistory expansion does take place in
So you'll get an error if there isn't a command starting with
"
in your history