ユーザーに質問し、答えを提供し、iという変数に保存するようにし、答え(ファイル)が存在し、書き込み可能な場合はそれを読み、内容を把握します。ファイルと挿入このコンテンツは新しいコンテンツに書き込まれます。ファイルが存在しない場合、またはユーザーがファイルに対する十分な権限を持っていない場合は、警告メッセージが表示され、プログラムは3秒間スリープモードに入り、ループを再開します。なぜ動作しないのですか?警告は消えず、サイクルは続行されません。
echo "$(tput setaf 4) Tell me where the file is:"
printf "\n"
a=false
while [ $a=true ]; do
read i
if [ -w $i ]
then cat $i | grep stuff > i2
else
a=true
printf "Oh something is wrong, try again!"
sleep 3
fi
done
ベストアンサー1
文法的、論理的なエラーがあります。
これは$a=true
比較操作ではなく単純な文字列です。簡単に比較できるようにスペースで区切ります。"$a" = true
。
これを完了したら、あらかじめ設定しておいたので、ループにまったく入らなくなりますa=false
。
ループに陥ると、それ以外のものにa
設定されたことがなく、true
他のシャットダウンメカニズムが提供されないため(たとえばbreak
)シャットダウンできません。