Bug 1010760

Summary: type command output function, Inconsistent with the function definition.
Product: Red Hat Enterprise Linux 6 Reporter: JianHong Yin <jiyin>
Component: bashAssignee: Ondrej Oprala <ooprala>
Status: CLOSED NOTABUG QA Contact: BaseOS QE - Apps <qe-baseos-apps>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.5CC: ovasik
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1010759 Environment:
Last Closed: 2014-02-21 14:15:38 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 1010759, 1010761    
Bug Blocks:    

Description JianHong Yin 2013-09-23 02:11:52 UTC
+++ 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 JianHong Yin 2013-09-23 02:13:00 UTC
test in RHEL6.5 latest RTT distro
[root@intel-canoepass-01 initscript]# f() { echo $1 | grep --color=auto "kkk"; rm -i kkk; }
[root@intel-canoepass-01 initscript]# type f
f is a function
f () 
{ 
    echo $1 | grep --color=auto "kkk";
    rm -i -i kkk   <<<--- here
}
[root@intel-canoepass-01 initscript]# rpm -q bash
bash-4.1.2-15.el6_4.x86_64

Comment 3 Ondrej Oprala 2014-02-21 14:15:38 UTC
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.