您好我是bash脚本的新手。刚刚编写了这个简单的程序,但它正在抛出错误。
#!/bin/bash
os=`uname -o`
echo $os
if ["$os"=="GNU/Linux"] ; then
echo "Linux"
else
echo "Windows"
fi
对于这两种情况使用==或-eq我收到以下错误并且正在打印else condn。
./ ostype.sh:line 3:[GNU / Linux == GNU / Linux]:没有这样的文件或目录
窗
Bash版本:GNU bash,版本3.2.48(1)-release(x86_64-suse-linux-gnu)
答案 0 :(得分:24)
尝试
if [ "$os" = "GNU/Linux" ]
注意空格和单=
。
[
实际上是一个程序,其余的都是参数!
答案 1 :(得分:7)
使用=
进行字符串比较。请参阅:http://tldp.org/LDP/abs/html/comparison-ops.html
此外,方括号和比较运算符周围应该有一个空格,即
if [ "$os" = "GNU/Linux" ]; then
^ ^ ^ ^ ^
| | | | |
\-\-----\-\-----------\-- (need spaces here)