我是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