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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: alieblice در 05 اردیبهشت 1390، 10:22 ب‌ظ

عنوان: چرا این جواب درستی نمیده !!
ارسال شده توسط: alieblice در 05 اردیبهشت 1390، 10:22 ب‌ظ
سلام دوستان من از روی اموزشی که تو قسمت برنامه نویسی سایت چسبونک شده داشتم برنامه نویسی یاد میگرفتم که هر کار میکنم این جواب درستی بهم نمیده ](*,) ](*,)

#!/bin/sh
# fist
# this is my first script and it is from forum.ubuntu.ir

for file in *
do
if grep -q  POSIX $file
then
echo $file
fi
done

exit 0


این جوابی که میده  ((فایل تو  هم  دایرکتوریه ))

grep: �����: No such file or directory
grep: �����: No such file or directory
hello.sh
grep: The: No such file or directory
grep: KMPlayer: No such file or directory
grep: Ubuntu: No such file or directory
grep: One: No such file or directory
alieblice@alieblice-MS-7360:~$
alieblice@alieblice-MS-7360:~$ exit 0

اگرم بگین که این چه کاری رو میخاد انجام بده خیلی خوب میشه

پیشاپیش ممنون.
عنوان: پاسخ به: چرا این جواب درستی نمیده !!
ارسال شده توسط: فاراب در 05 اردیبهشت 1390، 10:56 ب‌ظ
اسم فایل که فارسی نیست؟
عنوان: پاسخ به: چرا این جواب درستی نمیده !!
ارسال شده توسط: alieblice در 05 اردیبهشت 1390، 11:02 ب‌ظ
اسم فایل hello هستش
عنوان: پاسخ به: چرا این جواب درستی نمیده !!
ارسال شده توسط: HojjatJafary در 06 اردیبهشت 1390، 07:38 ب‌ظ
درستش اینه:
#!/bin/sh
# first
# this is my first script and it is from forum.ubuntu.ir

for file in "*"
do
if grep -q  POSIX $file
then
echo $file
fi
done

exit 0
علامت * رو باید داخل دابل کوتیشن بذاری.
عنوان: پاسخ به: چرا این جواب درستی نمیده !!
ارسال شده توسط: alieblice در 06 اردیبهشت 1390، 09:38 ب‌ظ
ممنون
حد اقل الان یک جوابی بهم میده
کسی میتونه خیلی ک.تاه که زحمتی مشه توضیح بدین که این چه کاری ان جام میده ؟
عنوان: پاسخ به: چرا این جواب درستی نمیده !!
ارسال شده توسط: فاراب در 06 اردیبهشت 1390، 11:51 ب‌ظ
پیشنهاد میدم اگه به اسکریپت نویسی علاقه دارید از صفر شروع کنید. اینجوری نمیشه.
خط اول میگه از مفسر bash استفاده کن. دو خط بعدی کامنت هستند و نادیده گرفته میشن. حلقه for برای جستجوی تمام فایل ها با پترن خاصی هست که در نهایت در صورت وجود فایل نامش در خروجی چاپ میشه. exit 0 هم برای پایان اسکریپت لازمه و به سیستم عامل میفهمونه که برنامه خروجی به سیستم عامل نمیده، مثل C
عنوان: پاسخ به: چرا این جواب درستی نمیده !!
ارسال شده توسط: جادی در 07 اردیبهشت 1390، 11:25 ق‌ظ
گفتی که داری برنامه نویسی یاد می گیری. در موقع یاد گرفتن باید بتونی مشکلات خودت رو کشف و حل کنی. اگر نمی تونی مشکلی رو کشف و حل کنی معنی اش اینه که اون کار برات زیادی پیشرفته است و در نتیجه از انجامش هم چیزی یاد نمی گیری.

به نظرم یک قدم بیا پایینتر. از یک مرجع خوب مرحله به مرحله برو جلو. سعی کن انگلیسی بخونی که با یک تیر دو نشون زده باشی. انگلیسی بلد بودن در دنیای لینوکس بسیار مهتمر از بش اسکریپت بلد بودن است (:
عنوان: پاسخ به: چرا این جواب درستی نمیده !!
ارسال شده توسط: ٍاحسان ترکم در 07 اردیبهشت 1390، 11:46 ق‌ظ
bash script خیلی راحته وا گه کمی وقت بگذارین و از تقریبا صفر شروع کنین می تونید راحت حرفه ای بشید.

و دوم این ک با کدا ور برین و هی تغییر بدین و خلاقیت به خرج بدید و کارتون صرفا کپی و پیست و اجرا کردن مثال ها نباشه.

ببخشید کمی رک گفتم  ::)
عنوان: پاسخ به: چرا این جواب درستی نمیده !!
ارسال شده توسط: alieblice در 07 اردیبهشت 1390، 01:21 ب‌ظ
ممنون از راهنمایی همه ی دوستان

من هیچ زبان برنامه نویسی بلد نیستم  پیشنهاد میکنین کدومو اول برم یاد بگیرم ؟
عنوان: پاسخ به: چرا این جواب درستی نمیده !!
ارسال شده توسط: ٍاحسان ترکم در 07 اردیبهشت 1390، 06:40 ب‌ظ
ممنون از راهنمایی همه ی دوستان

من هیچ زبان برنامه نویسی بلد نیستم  پیشنهاد میکنین کدومو اول برم یاد بگیرم ؟

اول اول از یه ساخت یافته شروع کن مثل c یا اگه نخواستی c++.
 بعد که خوب یاد گرفتی حالا اگه بخوای زبان دیگه ای رو یاد بگیری 50 در صد عین همه فقط یه کمی syntax  (نهوه نوشتن) شون فرق داره. مثلا for تو c++ با java تقریبا یکی اند حتی با پاسکال.
for (i=1; (i<p2); i++){
r = r * p1;
printf("\n Enter a number: ");
}
تو پاسکال
for i = 1 to 10
begin
i:=i+1;
end;
تو بیسیک
for i = 0 to 10
print "Please Type Numbers: "
next i
عنوان: پاسخ به: چرا این جواب درستی نمیده !!
ارسال شده توسط: alieblice در 07 اردیبهشت 1390، 08:20 ب‌ظ
ممنون از راهنمایی تون
عنوان: پاسخ به: چرا این جواب درستی نمیده !!
ارسال شده توسط: جادی در 08 اردیبهشت 1390، 01:40 ب‌ظ
زبون انتخاب خودته و هیچ کس هم به نتیجه نرسیده که بهتره با کدوم زبون آموزش شروع بشه. من شخصا زبون های اسکریپتی رو به سی ترجیح می دم. سی پایه ای است. کتابش رو می تونی بخونی و مفاهیم برنامه نویسی رو درک کنی و برنامه بنویسی. بعدش اگر من باشم می رم سراغ یک زبون اسکریپتی مثل پرل یا پایتون برای سریعتر پیش رفتن و راحت تر به نتیجه رسیدن.
عنوان: پاسخ : چرا این جواب درستی نمیده !!
ارسال شده توسط: بهروز رمضانی در 22 فروردین 1391، 10:11 ب‌ظ
سلام راستش میخواستم یه اسکریپت را حذف فاصله اسم فایلهای یه دایرکتوری بنویسم اما به مشکل خوردم این اسکریپت هست
#!/bin/bash
while find . -name "* *.*"
   do rename " " _ *\ *
done
exit 0

اما بعد از اینکه فاصله بین اسامی تمامی فایلها حذف شد حلقه خاتمه پیدا نمیکنه و مرتب ای خروجی را میده
rename: renaming * * to *_* failed: No such file or directory
rename: renaming * * to *_* failed: No such file or directory
rename: renaming * * to *_* failed: No such file or directory
rename: renaming * * to *_* failed: No such file or directory

حالا یه سوال دارم مگر تا زمانی که شرط حلقه برقرار باشه ( یعنی فایلهای پیدا بشه که داخل اسامیشون فاصله باشه ) حلقه باید تکرار بشه و به محض برقرار نبودن شرط حلقه به پایان برسه . اما این طور نمیشه چرا ؟