为什么更新所有pip包的bash别名停止工作?

2024-06-16 09:55:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用这个命令已经有一段时间了,直到最近它还很有效。在

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

但是,它最近开始失败,只要包有可用的更新,就会出现以下输出:

^{pr2}$

此实例中此别名执行的yolk -U命令的输出是:

[14:05] Bryson@Zeus ~ :$ yolk -U
 pep8 1.5.3 (1.5.4)
 setuptools 3.4.1 (3.4.3)
[14:06] Bryson@Zeus ~ :$ 

yolk没有返回包名/版本时,该命令将正确地输出以下内容,alias命令不会失败。相反,以下内容将正确打印到终端:

No newer packages found at The Cheese Shop
You must give at least one requirement to install (see "pip help install")

Tags: installpip实例命令sudoaliasupgradeat
1条回答
网友
1楼 · 发布于 2024-06-16 09:55:33

您的问题是,awk "{print $1} "中的$1被作为一个变量插值,导致执行命令awk "{print }"。后一个命令打印整行(不只是第一个字段),因此(1.5.4)出现在pip的命令行上。在

它可能工作了一段时间,因为yolk -U没有输出任何内容。在

要修复此问题,可以转义$

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

或者使用cut

^{pr2}$

相关问题 更多 >