.bashrc源代码时如何停止运行别名中的命令?
我的问题:无论何时我打开一个新的终端窗口, ~/.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之外使用这个来更新像pip
, setuptools
, virtualenv
, virtualenvwrapper
, yolk
,一些linters和一些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函数总体上会是一个更好的解决方案。 别名是历史载重量。
链接地址: http://www.djcxy.com/p/26377.html上一篇: How do I stop a command inside an alias from running when .bashrc is sourced?
下一篇: How to check for an active Internet connection on iOS or macOS?