Bug 1010759

Summary: type command output function, Inconsistent with the function definition.
Product: Red Hat Enterprise Linux 5 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: 5.10CC: ovasik
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1010760 1010761 (view as bug list) Environment:
Last Closed: 2014-02-21 14:44:54 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:
Embargoed:
Bug Depends On:    
Bug Blocks: 1010760, 1010761    

Description JianHong Yin 2013-09-23 02:10:54 UTC
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 Ondrej Oprala 2014-02-21 14:44:54 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.