问题标签 [xonsh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
113 浏览

python - Xonsh 和 rsync 命令

我有一个这样的测试文件夹:

在普通的bash/zsh shell 中,这是命令的输出

但在xonsh shell 中,这是输出

我也尝试用单个顶点进行更改,但结果是一样的。

谁能解释一下这个简单的命令哪里出错了??

我的 xonsh 版本是0.9.11,但我也用0.9.13进行测试

0 投票
1 回答
57 浏览

python-3.x - xontrib 自动跳转冻结 xonsh shell

我正在使用安装了 xonsh 的 MiniConda。运行 print(sys.version) 会产生:

我不确定我使用的是哪个版本的 xonsh,但我昨天(2020 年 1 月 29 日)安装了它,这就是 conda 命令得到的任何东西。

当我跑步时,xontrib list我得到

关键安装了自动跳转,但没有加载。

当我运行时,xontrib load -v autojump我收到一条消息,然后外壳冻结(光标仍在闪烁,但外壳没有做任何事情)。消息是:

我正在注意使用 MiniConda 安装中的 Python 内容(不是我拥有的其他 Python 副本)。

有人对如何调试有任何想法吗?我很想找到一种方法来获取有关正在发生的事情以及为什么会冻结的更多信息。

谢谢!

0 投票
2 回答
68 浏览

xonsh - 使用 xonsh 查找和替换文件中的文本

在 xonsh shell 中,如何(递归地)替换给定目录中所有文件中的文本?

例如,我将如何重写以下 bash 命令:

0 投票
1 回答
59 浏览

terminal - 为什么`stty cols 40`在两个shell bash和xonsh中有不同的效果

在 Linux/macOS 上sttyxonsh shell 中使用时出现奇怪的行为。(命令似乎不遵守 xonsh 下定义的列,但它们在 bash 下这样做。)

为了更好地理解这种情况,我编写了一个小 C 程序,它为 3 个标准流调用ioctl ,打印出宽度。TIOCGWINSZstdinstdoutstderr

在执行任何stty命令之前,我得到以下 ioctl 宽度的结果:

重击 呸呸呸
stdin=80, stdout=80, stderr=80 stdin=80, stdout=80, stderr=80

到目前为止,一切都很好。这意味着我的终端是 80 列宽。

现在我在每个 shell 中发出stty cols 40,运行我的小程序并得到这些结果:

重击 呸呸呸
stdin=40, stdout=40, stderr=40 stdin=40, stdout=80, stderr=80

多么奇怪,在 xonsh 下,文件描述符 stdout 和 stderr 报告的宽度为 80(!),而在 bash 下,所有描述符都按预期的宽度为 40。

这揭示各种命令(例如wget)不服从stty colxonsh 下的调用这一事实。

但为什么会这样呢?我怎样才能发出一个stty-style 命令,在 xonsh 下将所有标准流的宽度设置为 40?

0 投票
1 回答
61 浏览

xonsh - xonsh“which”等价物 - 如何测试(子进程模式)命令是否可用?

我想测试(来自 xonsh)命令是否可用。如果我从 xonsh 命令提示符尝试此操作:

然后它工作:

但它不适用于 xonsh 脚本:

因为它会导致这个错误:

我知道这which是一个内置的shell。例如,它不是一个可执行文件。但它在 xnosh 命令提示符下可用。那么为什么它在 xonsh 脚本中不可用呢?最终的问题是:如果(子进程模式)命令可用,我如何测试(从 xonsh 脚本)?

0 投票
0 回答
31 浏览

terminal - 我需要解决我的 xonsh Shell 管道问题

Xonsh shell 管道问题

从 1-2 个月前开始,我就遇到了 Xonsh 这个奇怪的可能与管道相关的问题。不知何故,当它打开其他 shell、脚本和其他东西时,它弄乱了管道套接字。这导致无法将任何输入发送到更多、更少等程序。通过 Bash 的基本终端输入:s 读取命令和东西可以工作,但没有管道。

我不完全确定如何用语言更清楚地表达问题,这就是为什么我认为我会提供一些我创建的日志历史记录。我比较了通过三种不同的路径运行相同的简单脚本:

1:我常用的 Arch Linux Xonsh 环境(脚本中的管道失败)。2:在上述环境中进行 Bash(同样的工作) 3:我的一个运行 Xonsh 的 Debian 服务器(也可以)

我还注意到,在错误的环境中,结尾 less 在它应该接收输出的程序之前打开。无论如何,这里是日志,可以这么说 - 文件处理从启动 1 行脚本通过 less 管道 jq 输出:

我会很感激任何帮助。目前这是一个严重的不便。

0 投票
1 回答
36 浏览

shell - 如何在 xonsh 子进程中扩展 shell 变量?

我正在学习xonsh。我尝试了以下简单的脚本,但它在zipinfo -1 $mzip_str,特别是在扩展时失败了mzip_str

在 xonsh shell 中,我得到以下结果:

0 投票
1 回答
63 浏览

python - 我的代码混淆了正则表达式的输入文件名

我的正则表达式没有在字符范围内明确包含破折号,但是当输入文件名如下时,我的代码会失败:

这是我的代码:

很明显,文件名的这一部分是问题所在:[Maxi-Single]

如何处理与此类似的文件名,以便将它们视为固定字符串,而不是正则表达式的一部分?

(不是我的主要问题,但如果它是相关的,我愿意尝试另一种方法来进行不区分大小写的搜索。我已经查看了关于该主题的几个 Stack Overflow 问题,但我没有 - 到目前为止 - - 找到任何似乎适合这种情况的解决方案。)

这是我的错误:

回溯(最近一次通话最后):

编辑:我尝试使用re.escape此处引用的内容:https ://docs.python.org/3/library/re.html

它处理了早期的文件名,但现在失败,输入文件名Aerosmith - Aerosmith (2014) [24-96 HD]在我修改后的代码的同一点产生了相同的错误。

0 投票
0 回答
37 浏览

python - 如何在带有 xonsh 的 find 命令上使用 -exec?

在 xonsh 我可以运行这样的find命令:

其中 path 是 pathlib.Path 对象。

但是,我不明白如何使用-exec-execdir选项find

这会导致错误:

我查看了教程 — xonsh 0.10.1.dev5.dev5 文档并尝试了 @$(...) 和许多其他变体,但均未成功。

编辑:这个版本

给出这个错误:

0 投票
1 回答
44 浏览

xonsh - xonsh:有没有办法将函数调用为带有可选参数的命令?

我在 Xonsh 中有一个函数,我试图像命令一样使用它(即:没有括号)。该函数应该可选地接受参数,但是每当我调用不带参数的函数时,我只会得到函数地址。如何调用带有可选参数的函数?

这是示例:

当我up不带参数调用时,我得到<function __main__.up>. 当我这样称呼它时,它可以工作:up 2.

我可以做一个这样的函数,但是如果不使用括号(即:作为命令)我就不能调用它,这是我更喜欢的:

调用up()andup(2)都以这种方式工作,但比调用upor更麻烦up 2。在 Xonsh 中完成我想要做的事情的正确方法是什么?