看来
extglob
不幸的是,不能与Python Fabric一起使用。
从
bash docs
extglob
更改某些字符的解析方式。这是必要的
有一个
新线
(
不仅仅是分号
)中间
shopt -s extglob
和
使用它的任何后续命令。
但是从
Fabric docs
虽然Fabric可以用于许多类似shell脚本的任务,但有一个
稍微不敏感的捕获:每个
run
[...] 有
它自己独特的shell会话
.这是必需的
为了让Fabric可靠地计算出
运行,它的标准输出/错误和返回代码是什么。
幸运的是,可以使用Bash的GLOBIGNORE shell变量实现类似的功能
GLOBIGNORE shell变量可用于限制文件集
匹配模式的名称。如果设置了GLOBIGNORE,则每个匹配的文件
与GLOBIGNORE中的模式之一匹配的名称将被删除
从匹配列表中。如果设置了nocaseglob选项,则
根据GLOBIGNORE中的模式进行匹配时不需要
关于这个案子。文件名。和当
GLOBIGNORE已设置且不为空。但是,将GLOBIGNORE设置为
非null值具有启用dotglob shell选项的效果,因此
以a开头的所有其他文件名。会匹配的。去变老
忽略以..开头的文件名的行为。,制造。*什么之中的一个
Global中的模式被忽略。在以下情况下,dotglob选项将被禁用:
这是不确定的。
这也容易忽略
.
和
..
扩展通配符时,删除所有文件-除了'。在一个目录中,我们可以
c.run("GLOBIGNORE='.venv'; rm -Rf {project_path}*")