有人可以帮我理解运行以下命令的目的是什么?它做了什么?
$ sudo rpm --eval "%(/bin/bash >&2)"
man rpm
给出了这个:
- EVAL =” EXPR”
Prints macro expansion of EXPR.
我试过这个命令,它只将用户转移到root,也改变了当前的状态 user1主目录的目录?为什么我们要这样做呢? 神秘的方式?
[user1@localhost ~]$ sudo rpm --eval "%(/bin/bash >&2)"
root @ localhost : /home/user1 $
答案 0 :(得分:1)
除了“%{...}”表单外,还可以使用执行shell扩展 “%(shell命令)”。 “%(...)”的扩展是( 扩展)...送到/ bin / sh。例如,“%(日期+ %% y %% m %% d)” 扩展为字符串“YYMMDD”(删除最终换行符)。请注意 第二个%需要将参数转义为/ bin / date。
回到你的问题:
为什么我们想以这种神秘的方式做到这一点?
你应该问作者。也许他想要使用一些副作用。就像执行.bashrc一样。