انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: linuxesabz در 23 فروردین 1395، 10:37 قظ
-
با سلام من یه برنامه نوشتم شبیه زیر
while :
do
l=1
first=$l
tail -50 b |grep -m 30 'sallam' |while read LINE;do
FIELD=$(echo $LINE |grep "ali")
if [ -n "$FIELD" ]; then
echo "sallam"
l=$FILED
echo $l
fi
done
echo $l
echo $ali
done
متغیر L زمانی که در حلقه است مقدار درستی را چاپ میکند اما زمانی که از حلقه خارج میشود مقدرا 1 را چاپ میکند.
من میخوام که مقداری که در حلقه است در بیرون حلقه نیز چاپ شود.
-
کاش یکم تو رفتگی ایجاد میکردید که خوندنش راحت تر بشه، ولی به هر حال متغیر رو خارج حلقه تعریف کنید.
-
کاش یکم تو رفتگی ایجاد میکردید که خوندنش راحت تر بشه، ولی به هر حال متغیر رو خارج حلقه تعریف کنید.
زور زدم تو رفتگی ایجاد کنم اما متاسافنه با این سیستم اصلا نمیتونم کار کنم نمیدونم مشکل منه یا واقعا مشکل انجمنه
امامتغیرو مجبورم داخل حلقه تعریف کنم بیرونش به دردم نمیخوره
-
جواب قبلیم کاملا اشتباه بود. عذر میخوام.
مشکل توی استفاده از پایپه، هر بار که شما پایپ میکنی یه دونه ساب شل جدید درست میشه و بعد از پایپ هر چی که هست توی اون شل اجرا میشه.
http://serverfault.com/questions/259339/bash-variable-loses-value-at-end-of-while-read-loop