我是shell脚本的新手。只是对我写的一些脚本有一个小问题。这个简单的shell脚本有什么问题
pkgs="./cppcheck-1.48.tar.bz2 ./sshpass-1.04.tar.gz"
for pkg in $pkgs ; do
echo ${pkg} | grep -qE "bz2$"
if [ $? ] ; then
echo "here1"
else
echo "here2"
fi
done
它总是在这里打印1,即条件是否为真。到现在为止,我无法指出任何理由。请指向正确的方向。
我知道我可以使用shell的switch命令。只是想知道这是什么问题。 Shell是/ bin/bash
[编辑] - switch语句完美无缺地工作。对于那些谁面对这个问题的一些其他时间
case ${pkg} in
*bz2) echo "here1";;
*) echo "here2";;
esac
感谢您的解释。 – Anon