انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: Fire.Phoenix در 24 امرداد 1394، 10:21 ب‌ظ

عنوان: مشکل در ترکیب while و if (حل شد)
ارسال شده توسط: Fire.Phoenix در 24 امرداد 1394، 10:21 ب‌ظ
سلام یک مشکلی در ترکیب این دستور با if در محیط bash دارم
#!/bin/bash
partsize=5
partstart=0
x=0
size=93

while [ $x -le 4 ]
do
  echo "Welcome $partstart - $partsize times"
  partstart=$(( $partsize + 1))
  partsize=$(( $partsize + $partsize + 1))
  x=$(( $x + 1 ))
done
میخواهم وقتی partsize از size بیشتر شد در echo مقدار partsize را خالی(بدون عدد) بگذارد و از while خارج شود هر جور if را با این ترکیب میکنم خظا میدهد
عنوان: پاسخ : مشکل در ترکیب while و if
ارسال شده توسط: علیرضاامیرصمیمی در 24 امرداد 1394، 10:42 ب‌ظ
منظورت اینجوریه؟
#!/bin/bash
partsize=5
partstart=0
x=0
size=93

while [ $x -le 4 ]
do
  if [ $partsize -gt $size ];then
      partsize=""
        echo "Welcome $partstart - $partsize times"
        break
  fi
  echo "Welcome $partstart - $partsize times"
  partstart=$(( $partsize + 1))
  partsize=$(( $partsize + $partsize + 1))
  x=$(( $x + 1 ))
done
عنوان: پاسخ : مشکل در ترکیب while و if
ارسال شده توسط: Fire.Phoenix در 24 امرداد 1394، 10:48 ب‌ظ
منظورت اینجوریه؟
#!/bin/bash
partsize=5
partstart=0
x=0
size=93

while [ $x -le 4 ]
do
  if [ $partsize -gt $size ];then
      partsize=""
        echo "Welcome $partstart - $partsize times"
        break
  fi
  echo "Welcome $partstart - $partsize times"
  partstart=$(( $partsize + 1))
  partsize=$(( $partsize + $partsize + 1))
  x=$(( $x + 1 ))
done
دست شما درد نکند دقیقا همین بود
عنوان: پاسخ : مشکل در ترکیب while و if
ارسال شده توسط: علیرضاامیرصمیمی در 24 امرداد 1394، 10:55 ب‌ظ
خواهش میکنم ;)
راستی یه سری از $ هایی که گذاشتی نیازی نیست
مثلا میتونی اینجوری بنویسی
#!/bin/bash
partsize=5
partstart=0
x=0
size=93

while [ $x -le 4 ]
do
  if [ $partsize -gt $size ];then
      partsize=""
        echo "Welcome $partstart - $partsize times"
        break
  fi
  echo "Welcome $partstart - $partsize times"
  partstart=$(( partsize + 1))
  partsize=$(( partsize + partsize + 1))
  x=$(( x + 1 ))
done