[[]]中的Bash ==运算符太聪明了!
收藏

恰到好处。我想知道一些文件集的第一行是否有“---”。
所以,

for file in *.txt
do
    if [[ `head -1 "$file"` == "------" ]]
    then
        echo "$file starts with dashes"
    fi
done

问题是,head返回带有换行符的内容,但是“----”没有换行符。
为什么有效?


最佳答案:

反勾号去掉了后面的换行符。例如:

foo=`echo bar`
echo "<$foo>"

印刷品
<bar>

即使第一个回音打印出“bar”后接一个换行符。

    公众号
    关注公众号订阅更多技术干货!