Bug 32156

Summary: bash --rpm-requires doesn't go into command substitution
Product: Sisyphus Reporter: Ivan Zakharyaschev <imz>
Component: bashAssignee: placeholder <placeholder>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: glebfm, ldv, placeholder
Version: unstable   
Hardware: all   
OS: Linux   

Description Ivan Zakharyaschev 2016-05-30 20:32:05 MSK
bash-3.2.57-alt1 (the same is true for bash4 --rpm-requires)

Example:

$ echo 'foo | bar' | bash --rpm-requires 
executable(/etc/bashrc)
executable(foo)
executable(bar)
$ echo '(foo | bar)' | bash --rpm-requires 
executable(/etc/bashrc)
executable(foo)
executable(bar)
$ echo 'echo $(foo | bar)' | bash --rpm-requires 
executable(/etc/bashrc)
$ echo 'echo `foo | bar`' | bash --rpm-requires 
executable(/etc/bashrc)
$ 

Expected output everywhere:

executable(foo)
executable(bar)
Comment 1 Dmitry V. Levin 2018-12-19 01:54:22 MSK
At least this behaviour is documented:
"command substitutions, conditional expressions, and eval builtin are not parsed so some dependencies may be missed."