[英]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之外使用它来更新全局软件包,例如pip
, setuptools
, virtualenv
, virtualenvwrapper
, yolk
,一些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.