0
を変え取得されていない私は、シェルスクリプトすることは非常に新しいですし、私は、スクリプトのサイズを変更する基本的なイメージがあります。フラグ値はシェルスクリプトで
今#!/bin/bash
isResizeAnotherImage=Y;
for isResizeAnotherImage in Y y N n
do
echo "option entered before if: $isResizeAnotherImage";
if [ $isResizeAnotherImage='Y' ] || [ $isResizeAnotherImage='y' ]; then
echo "Enter the file name : ";
read imageFileName;
read -p "Enter desired size: " imageDesiredSize;
mogrify -resize $imageDesiredSize $imageFileName 2>/dev/null;
echo "Resize another image ? Y/N : ";
read isResizeAnotherImage;
echo "option entered in if: $isResizeAnotherImage";
else
echo "option entered : $isResizeAnotherImage";
exit 1;
fi;
done
を、それが正常に最初の画像のサイズを変更し、「別の画像のサイズを変更する?」尋ねます。ここでは、「N」と入力します。しかし、次のループでは、フラグの値が 'N'に変更されていないことを示しています。したがって、それはif条件に入ります。 なぜこのようなことが起こり、防止するのですか?
私はまだシェルスクリプトのforループという概念が欠けています。私は正しい方向に導いてくれてありがとうございます。はい、それはwhileループになっているはずです。私はこれを今すぐやります。 – utsabiem
はい、うまくいきました。シェルスクリプトには何らかのブレークポイントがありますか?彼らはコーディングとデバッグを非常に簡単にします。 – utsabiem
スクリプトの最初の行に-xオプションを追加すると、#!/ bin/bash -xになります。これにより、シェルがデバッグモードで起動され、多くの冗長出力が得られます。コードをステップバイステップで実行できるという意味でのデバッグではありませんが、何が起きているのかを十分に感じるだけで十分です。私は他の人がおそらくこのサイトで同じ質問をしていると確信しています – DaveRlz