[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: History modifier :p ignored prior to another history reference
From: |
Piotr Grzybowski |
Subject: |
Re: History modifier :p ignored prior to another history reference |
Date: |
Thu, 5 May 2016 21:38:30 +0200 |
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
>>
>>
>