我想测试(来自 xonsh)命令是否可用。如果我从 xonsh 命令提示符尝试此操作:
which bash
然后它工作:
user@server ~ $ which bash
/usr/bin/bash
但它不适用于 xonsh 脚本:
#!/usr/bin/env xonsh
$RAISE_SUBPROC_ERROR = True
try:
which bash
print("bash is available")
except:
print("bash is not available")
因为它会导致这个错误:
NameError: name 'which' is not defined
我知道这which
是一个内置的shell。例如,它不是一个可执行文件。但它在 xnosh 命令提示符下可用。那么为什么它在 xonsh 脚本中不可用呢?最终的问题是:如果(子进程模式)命令可用,我如何测试(从 xonsh 脚本)?