BASH:比较字符串,一个来自文件,一个来自我的程序,if语句总是为真

时间:2012-02-13 00:05:37

标签: bash scripting

所以我有这段代码。基本上,我正在拿文件$ i,检查它是否有内容,检查我是否可以阅读它,如果我可以打开它,抓住第一行,看看它是否是一个bash文件。当我每次在非空文件上运行时,它被注册为true和echo的bash。

            ## File is empty or not
            if [[ -s $i ]]
            then
                ## Can we read the file 
                if [[ -r $i ]]
                then
                    ## File has content
                    if [[ $(head -n 1 $i) = "#! /bin/bash" ]]
                    then
                        echo -n " bash"
                    fi
                fi
            else
                ## file does not have content
                echo -n " empty"
            fi

这是检查它是否是bash:

if [[ $(head -n 1 $i) = "#! /bin/bash" ]]

1 个答案:

答案 0 :(得分:0)

[[替换为[,并将$(head -n 1 $i)括在引号中。

[[本身就是一个测试其内容的运算符。