Linux 奇怪的rpm——eval命令

Linux 奇怪的rpm——eval命令,linux,rpm,Linux,Rpm,有人能帮我理解运行以下命令的目的吗?它有什么作用 $ sudo rpm --eval "%(/bin/bash >&2)" 曼恩说: -eval='EXPR' Prints macro expansion of EXPR. 我尝试了这个命令,它只将用户转移到root,还更改了当前 user1的主目录的目录?我们为什么要在这样的环境下这样做 神秘的方式 [user1@localhost ~]$ sudo rpm --eval "%(/bin/bash >&

有人能帮我理解运行以下命令的目的吗?它有什么作用

$ sudo rpm --eval "%(/bin/bash >&2)"
曼恩说:

-eval='EXPR'

     Prints macro expansion of EXPR.
我尝试了这个命令,它只将用户转移到root,还更改了当前 user1的主目录的目录?我们为什么要在这样的环境下这样做 神秘的方式

[user1@localhost ~]$ sudo rpm --eval "%(/bin/bash >&2)"

root @ localhost : /home/user1 $ 
发件人:

除了“%{…}”表单外,还可以使用 “%shell命令”。“%…”的扩展是 扩展…馈送到/bin/sh。例如,“%date+%%y%%m%%d” 展开为字符串“YYMMDD”,删除最后一行换行符。注意 第二个%需要将参数转义到/bin/date

回到你的问题:

我们为什么要以如此神秘的方式做这件事

[user1@localhost ~]$ sudo rpm --eval "%(/bin/bash >&2)"

root @ localhost : /home/user1 $ 
你应该问问作者。也许他想用一些副作用。比如执行.bashrc