我有一个别名,它将一些参数传递给我经常使用的工具.有时我像自己一样跑,有时在sudo下.不幸的是,当然,sudo不承认别名.
有没有人提示如何通过别名?
在这种情况下,我在调试时有一堆perl的选项:
alias pd='perl -Ilib -I/home/myuser/lib -d'
有时,我必须以root身份调试我的工具,因此,而不是运行:
pd ./mytool --some params
我需要在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'"
我希望有一个很好的,简洁的方法来确保我当前的pd别名被完全使用(如果我需要稍后调整它),尽管我的一些尝试都不简洁.我最后的办法是将它放入一个shell脚本中并放在sudo能够找到的地方.但别名有时太方便了,所以这是最后的手段.
在Archlinux-Wiki中可以找到一个非常优雅的解决方案:
alias sudo='sudo ' # whitespace ---^
用于将所有别名传递给sudo.
资料来源:http://wiki.archlinux.org/index.php/Sudo#Passing_aliases
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。