我有下面的shell脚本来查询python版本。它给我一个错误,在if语句上声明"Integer expression expected"
。在
#!/bin/bash
PYTHON_VERSION=`python -c 'import sys; print("%i" % (sys.hexversion<0x03000000))'`
echo $PYTHON_VERSION
if [ $PYTHON_VERSION -eq 0 ]
then
echo "fine!"
fi
“echo$PYTHON_VERSION”打印出“0”,那么为什么if语句不起作用?在
编辑:我正在使用Windows和Cygwin
这是一个可能的解决方案
这是我从sleekxmpp得到的一个例子,但我相信它能满足您的需要。在
它不起作用的原因是因为存储在$PYTHON_VERSION中的结果不是一个整数,所以您的等式测试是用两种不同的类型来完成的。在
您可以将if更改为:
或者你可以这样做:
^{pr2}$好问题。对我来说,一切正常。您应该总是引用经过计算的变量(
"$X"
而不是$X
);也许这可以修复您的错误。在但我建议使用python脚本的结果而不是其输出:
{like to stay in the shell,If you can use the follow in the shell},If you can use the follow in the shell}如果你想完全留在shell中,也可以使用
^{pr2}$也许这更具可读性。在
相关问题 更多 >
编程相关推荐