我是新来的bash脚本编制,虽然我知道这无疑是一个重复的问题,但我无法弄清楚如何将它搜索出来。Bash“if”条件被执行,不管是什么
for i in $(ls); do
FILETYPE=$(file -b $i)
if [ "$FILETYPE"="Apple binary property list" ]; then
echo $FILETYPE
else
echo "nope"
fi
done
我期待这时候的语句成功,并仅打印“不”,否则只打印
“苹果二进制属性列表”
。
发生什么事情是它打印文件类型,不管语句是成功还是失败,并且从不打印“nope”。
我知道这是简单的,但有人可以告诉我为什么它打印除“Apple二进制属性列表”和“不”之外的任何东西,
和我能做些什么来解决它?
尝试添加字符串之间的一些空间的条件,如' “$ FILETYPE”= “...”' –
使用shellcheck.net到找到你的脚本明显的失误 – anubhava
我的问题是为什么会做什么的如果,如果语句是不正确的......我会明白,如果只印有“没了”,但它使零意义,我为什么会回声$文件类型如果条件失败 –