On 5 May 2016, at 20:08, Piotr Grzybowski wrote: > [..] > Currently the design indicates: :p applies to the whole line.
As Dean just has pointed out to me, this sentence is obviously wrong. it should be: Currently the design indicates: the last :p applies to the whole line, the information about existence of others before it, is overwritten. sorry, pg > On 3 May 2016, at 18:15, Dean Stanton wrote: > >> 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 >> >> >