0

我想测试(来自 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 脚本)?

4

1 回答 1

1
import shutil
print(shutil.which('bash'))
于 2021-11-05T07:23:58.350 回答