繁体   English   中英

来源.bashrc时,如何停止别名中的命令运行?

[英]How do I stop a command inside an alias from running when .bashrc is sourced?

我的问题:每当我打开一个新的终端窗口时,都会发出~/.bashrc ,并且yolk -U | awk '{print $1}' 执行以下描述的别名的yolk -U | awk '{print $1}'部分。

这使我的大多数新窗口的顶部都带有“奶酪店里没有新包装”的字样,并且在命令完成之前阻止了提示的显示。 定期会花费不多的秒数。

我的问题:我该如何阻止? 在我明确使用别名之前,我不希望它运行。

在我的~/.bashrc文件中,我具有以下alias

alias pipup="sudo pip install -U `yolk -U | awk '{print $1}'`"

我在virtualenv之外使用它来更新全局软件包,例如pipsetuptoolsvirtualenvvirtualenvwrapperyolk ,一些setuptools和一些cli实用程序。

别名本身可以正常工作,并且命令按预期运行。

OS X 10.9.1(尽管自从10.6开始就存在这个“问题”) bash 3.2.51

别名必须用单引号引起来。

alias pipup='sudo pip install -U `yolk -U | awk "{print \$1}"`'

您报告为“有效”的内容一直做错了事:登录时运行yolk ,别名最终看起来像

alias pipup='sudo pip install -U fnord'

您应该能够通过检查alias pipup的输出来进行验证。

尽管该系统不是非常复杂或令人惊讶,但通常对外壳的报价工具了解得很少。 参见例如http://mywiki.wooledge.org/Quotes

正如@devnull在评论中指出的那样,shell函数总体上将是更好的解决方案。 别名是历史重量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM