shell – 我怎么能在xargs中使用别名
发布时间:2020-12-15 16:59:56 所属栏目:安全 来源:网络整理
导读:Ubuntu使用zsh,现在有一个别名 alias | grep sayhisayhi='echo hi'sayhi foohi foo 但是,我不能在xargs或bash中使用此别名,请参阅下文 ? ~ echo foo | xargs -i sayhi {}xargs: sayhi: No such file or directory? ~ echo foo | awk '{print "sayhi "$0}'say
Ubuntu使用zsh,现在有一个别名
alias | grep sayhi sayhi='echo hi' sayhi foo hi foo 但是,我不能在xargs或bash中使用此别名,请参阅下文 ? ~ echo foo | xargs -i sayhi {} xargs: sayhi: No such file or directory ? ~ echo foo | awk '{print "sayhi "$0}' sayhi foo ? ~ echo foo | awk '{print "sayhi "$0}'|bash bash: line 1: sayhi: command not found 看来我不能在命令行中间接使用别名. 那么我怎么能在这种情况下使用别名呢?
暂且不谈你正在处理两种不同的贝壳:
> xargs只能调用外部实用程序(可执行文件),因此根据定义它不能直接调用别名(直接). 虽然你可以使它适用于许多使调用复杂化的扭曲,但最好的办法是将你的别名转换为脚本并让xargs / bash调用它. 要获得与别名相同的单字调用体验: >创建脚本sayhi(没有文件名后缀);示例内容,取自您的后续问题: #!/bin/bash echo hi $@ >使其直接可执行:chmod x sayhi – 这样您就不必涉及shell可执行文件来调用它. 然后,您将能够像路径中的任何其他可执行文件一样调用您的脚本 – 仅通过文件名 – 并且您的问题中的示例命令应该有效. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |