Configuration Information [Automatically generated, do not change]: Machine: x86_64
OS: linux-gnu Compiler: gcc Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64' -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_64-redhat-linux-gnu' -DCONF_VENDOR='redhat' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -I. -I. -I./include -I./lib -D_GNU_SOURCE -DRECYCLES_PIDS -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic uname output: Linux dstanton-vm.tintri.com 2.6.32.26-175.fc12.x86_64 #1 SMP Wed Dec 1 21:39:34 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux Machine Type: x86_64-redhat-linux-gnu Bash Version: 4.0 Patch Level: 38 Release Status: release Description: History modifier :p is not honored when it appears prior to another history reference on the same command line. I tried to find a website with known bash bugs (to search to see if this issue was already discussed), but didn't find such a site. Repeat-By: $ echo one two three four one two three four $ echo !:2:p ; echo !$ # :p was ignored! echo two ; echo four two four $ echo one two three four one two three four $ echo !:p !! # :p was ignored! echo one two three four echo one two three four one two three four echo one two three four I expected the entire command line to be only printed and not executed. The manpage says p Print the new command but do not execute it. Instead, the :p was ignored and the entire command line was (printed and then) executed. $ echo one two three four one two three four $ echo !:2 ; echo !$:p # :p was heeded. echo two ; echo four $ echo one two three four $ echo !:1:p !$ # :p was ignored echo one four one four