在 grunt exec 中指定一个带有回退的 python 版本
Specify a python version with fallback in grunt exec
我有一个 Gruntfile,其中 grunt-exec 指定如下:
exec: {
python_command: {
cwd: "../../",
command: 'python3.7 -c "MY_PYTHON_CODE"'
如果系统上存在 python3.7,我想使用它,否则我会退回到使用 python3。最简单的方法是什么?
如果你愿意写一个循环,你可以探测 $PATH。
这听起来像是一个 bash 问题:
我如何找到 cmd1
或 cmd2
是否可用?
如果您想分配给 "cmd" 变量,那么 which
是您的朋友:
$ which xxx || which yyy || which python3.7 || which python3
/usr/bin/python3.7
如果您愿意忍受一些 stderr 噪声,那么这个可行:
$ python3.7 -c 'print(1)' || python3 -c 'print(1)'
或者整理噪音,如果你有信心不会看到其他错误:
$ python3.7 -c 'print(1)' 2> /dev/null || python3 -c 'print(1)'
$ (python3.7 -c 'print(1)' 2>&1 || python3 -c 'print(1)') | grep -v 'command not found'
我有一个 Gruntfile,其中 grunt-exec 指定如下:
exec: {
python_command: {
cwd: "../../",
command: 'python3.7 -c "MY_PYTHON_CODE"'
如果系统上存在 python3.7,我想使用它,否则我会退回到使用 python3。最简单的方法是什么?
如果你愿意写一个循环,你可以探测 $PATH。
这听起来像是一个 bash 问题:
我如何找到 cmd1
或 cmd2
是否可用?
如果您想分配给 "cmd" 变量,那么 which
是您的朋友:
$ which xxx || which yyy || which python3.7 || which python3
/usr/bin/python3.7
如果您愿意忍受一些 stderr 噪声,那么这个可行:
$ python3.7 -c 'print(1)' || python3 -c 'print(1)'
或者整理噪音,如果你有信心不会看到其他错误:
$ python3.7 -c 'print(1)' 2> /dev/null || python3 -c 'print(1)'
$ (python3.7 -c 'print(1)' 2>&1 || python3 -c 'print(1)') | grep -v 'command not found'