在bash字符串比较不工作(String comparison in bash is not wor

2019-07-05 21:13发布

嗨,我是新来的bash脚本。 只是写了这个简单的程序,但它抛出错误。

#!/bin/bash
os=`uname -o`
echo $os
if ["$os"=="GNU/Linux"] ; then
    echo "Linux"
else
    echo "Windows"
fi 

使用==或当量为这两种情况下,我发现了以下错误,它是打印其他condn。

./ostype.sh:行3:[GNU / Linux的==的GNU / Linux]:没有这样的文件或目录

视窗

击版本:GNU bash中,版本3.2.48(1)-release下(x86_64-SUSE-Linux的GNU)

Answer 1:

尝试

if [ "$os" = "GNU/Linux" ]

注意空格,单=

[其实是一个程序,其余有观点!



Answer 2:

使用=的字符串比较。 请参阅: http://tldp.org/LDP/abs/html/comparison-ops.html

此外,应该有前后的方括号的空间和比较运算,即

if [ "$os" = "GNU/Linux" ]; then 
  ^ ^     ^ ^           ^  
  | |     | |           |
   \-\-----\-\-----------\-- (need spaces here)


文章来源: String comparison in bash is not working
标签: bash shell