小编Tan*_*lus的帖子

如何通过 sudo 传递别名

我有一个别名,可以将一些参数传递给我经常使用的工具。有时我以自己的身份运行,有时在 sudo 下运行。不幸的是,当然,sudo 无法识别别名。

有没有人有关于如何传递别名的提示?

在这种情况下,我在调试时有很多 perl 选项:

alias pd='perl -Ilib -I/home/myuser/lib -d'
Run Code Online (Sandbox Code Playgroud)

有时,我必须以 root 身份调试我的工具,所以,而不是运行:

pd ./mytool --some params
Run Code Online (Sandbox Code Playgroud)

我需要在 sudo 下运行它。我尝试了很多方法:

sudo eval $(alias pd)\; pd ./mytool --some params
sudo $(alias pd)\; pd ./mytool --some params
sudo bash -c "$(alias pd)\; pd ./mytool --some params"
sudo bash -c "$(alias pd); pd ./mytool --some params"
sudo bash -c eval\ "$(alias pd)\; pd ./mytool --some params"
sudo bash -c eval\ "'$(alias pd)\; pd ./mytool --some params'"
Run Code Online (Sandbox Code Playgroud)

我希望有一个不错的、简洁的方法来确保我当前的 pd 别名被充分使用(以防我以后需要调整它),尽管我的一些尝试根本不简洁。我最后的手段是将它放入一个 shell …

shell alias sudo

32
推荐指数
4
解决办法
2万
查看次数

标签 统计

alias ×1

shell ×1

sudo ×1