Bug 1010761 - type command output function, Inconsistent with the function definition.
type command output function, Inconsistent with the function definition.
Status: CLOSED NOTABUG
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: bash (Show other bugs)
7.0
All Linux
high Severity unspecified
: rc
: ---
Assigned To: Ondrej Oprala
BaseOS QE - Apps
:
Depends On: 1010759
Blocks: 1010760
  Show dependency treegraph
 
Reported: 2013-09-22 22:15 EDT by Yin.JianHong
Modified: 2014-02-21 09:44 EST (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1010759
Environment:
Last Closed: 2014-02-21 09:44:53 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Yin.JianHong 2013-09-22 22:15:04 EDT
+++ This bug was initially created as a clone of Bug #1010759 +++

Description of problem:
type command output  function, Inconsistent with the function definition.

Version-Release number of selected component (if applicable):
[root@dhcp-13-194 ~]# rpm -q bash
bash-3.2-32.el5; in RHEL6.4 6.5 7.0 has the similar problem.

How reproducible:
100%

Steps to Reproduce:
1. f() { echo $1 | grep --color=auto  "kkk"; rm -i kkk; }
2. type f
3.

Actual results:
[root@dhcp-13-194 ~]# f() { echo $1 | grep --color=auto  "kkk"; rm -i kkk; }
[root@dhcp-13-194 ~]# type f
f is a function
f () 
{ 
    echo $1 | grep --color=auto "kkk";
    rm -i -i kkk  <<<--- here the '-i' was changed to double
}

Expected results:


Additional info:
Comment 1 Yin.JianHong 2013-09-22 22:16:33 EDT
test in RHEL7

[root@dhcp12-185 ~]# f() { echo $1 | grep --color=auto  "kkk"; rm -i kkk; }
[root@dhcp12-185 ~]# type f
f is a function
f () 
{ 
    echo $1 | grep --color=auto --color=auto "kkk";  <<<--- here --color double
    rm -i -i kkk  <<<--- and here -i double
}
[root@dhcp12-185 ~]# rpm -q bash
bash-4.2.45-1.el7.x86_64
Comment 3 Ondrej Oprala 2013-10-16 08:19:29 EDT
Unable to reproduce with bash-4.2.45-2.el7. Are you sure this problem persists in RHEL7?
Comment 4 Yin.JianHong 2013-10-17 05:34:18 EDT
(In reply to Ondrej Oprala from comment #3)
> Unable to reproduce with bash-4.2.45-2.el7. Are you sure this problem
> persists in RHEL7?

Test in bash-4.2.45-1.el7.x86_64

[root@dhcp12-185 ~]# f() { echo $1 | grep --color=auto  "kkk"; rm -i kkk; }
[root@dhcp12-185 ~]# type f
f is a function
f () 
{ 
    echo $1 | grep --color=auto --color=auto "kkk";  <<<--- here --color double
    rm -i -i kkk  <<<--- and here -i double
}

[root@dhcp12-185 ~]# rpm -q bash
bash-4.2.45-1.el7.x86_64  <<<---
Comment 5 Yin.JianHong 2014-01-06 05:04:59 EST
[yjh@dhcp12-241 ~]$ /usr/bin/bash
[yjh@dhcp12-241 ~]$ f() { echo $1 | grep --color=auto  "kkk"; rm -i kkk; }
[yjh@dhcp12-241 ~]$ type f
f is a function
f () 
{ 
    echo $1 | grep --color=auto --color=auto "kkk";
                        <<<--- here --color double still ...
    rm -i kkk
}
[yjh@dhcp12-241 ~]$ rpm -q bash
bash-4.2.45-3.el7.x86_64
Comment 6 Ondrej Oprala 2014-02-21 09:44:53 EST
Petr Stodulka investigated this bug and found out this is actually caused by alias expansion.
I'm guessing you have an alias rm='rm -i' set, which bash then expands to 'rm -i -i'; which I do not consider a bug.

Please note it's a good coding habit to specify full paths for system utilities in shell scripts, which would also stop bash from silently expanding your alias.

Note You need to log in before you can comment on or make changes to this bug.