シェルスクリプトが初めてです。私が書いたスクリプトについて少し質問があります。この単純なシェルスクリプトで何が問題になっています
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
常にここでは、条件が常にtrueの場合は常に1が出力されます。私は今までそれを何らかの理由で指摘することはできません。私を正しい方向に向けてください。
シェルのスイッチコマンドを使うことができます。これで間違っていることを知りたいだけです。シェルは/ bin/bashです
[編集] - switch文は完璧に動作します。この問題に直面している人々のいくつかの他の時間
case ${pkg} in
*bz2) echo "here1";;
*) echo "here2";;
esac
ありがとうございます。 – Anon