&2)" man rpm 给出了这个: --eval=’EXPR’ -6ren">
gpt4 book ai didi

linux - 奇怪的 rpm --eval 命令

转载 作者:太空宇宙 更新时间:2023-11-04 10:14:18 25 4
gpt4 key购买 nike

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

$ 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 $

最佳答案

发件人:http://rpm.org/user_doc/macros.html

In addition to the “%{…}” form, shell expansion can be performed using “%(shell command)”. The expansion of “%(…)” is the output of (the expansion of) … fed to /bin/sh. For example, “%(date +%%y%%m%%d)” expands to the string “YYMMDD” (final newline is deleted). Note the 2nd % needed to escape the arguments to /bin/date.

回到你的问题:

why do we want to do this in such a mysterious way?

你应该问作者。也许他想使用一些副作用。就像执行 .bashrc。

关于linux - 奇怪的 rpm --eval 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47175191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com