انجمن کاربران لینوکس ایران - تکنوتاکس سابق
مشکل»تست اسکریپت - نسخه قابل چاپ

+- انجمن کاربران لینوکس ایران - تکنوتاکس سابق (https://forum.sito.ir)
+-- انجمن: پرسش‌ها و پاسخ‌ها (https://forum.sito.ir/forumdisplay.php?fid=3)
+--- انجمن: لینوکس و برنامه نویسی (https://forum.sito.ir/forumdisplay.php?fid=13)
+--- موضوع: مشکل»تست اسکریپت (/showthread.php?tid=15754)



مشکل»تست اسکریپت - مهمان - 2010-03-30

من یه اسکریپت نوشتم
کد :
#!/bin/sh
module="hello"
device="hello"
mode="664"

/sbin/insmod ./$module.ko $* || exit 1

rm -f /dev/${device}
major=$(awk "\$2= =\"$module\" {print \$1}" /proc/devices)
mknod /dev/${device}  c $major 0

group="staff"
grep -q '^staff:' /etc/group || group="wheel"
chgrp $group /dev/${device}
chmod $mode /dev/${device}

این اسکریپت رو وقتی تو ubuntu اجرا می کنم تو قسمت ایجاد گره (mknod) ظاهرن دچار مشکل می شه و پیغام
کد :
mknod: extra operand 218
Try 'mknod --help' for information.
chgrp: cannot access '/dev/hello': No such file or directory
chmod: cannot access '/dev/hello': No such file or directory
نمایش می ده. مشکل از چیه و باید چی کار کنم؟


پاسخ: مشکل»تست اسکریپت - mah454 - 2010-03-30

اسکریپت رو به این صورت اجرا کن :
کد :
sh -x MyScript
اینجوری میتونی debug کنی .


پاسخ: مشکل»تست اسکریپت - مهمان - 2010-03-30

ممنو، انجام دادم تا دم mknod رفت و چیزی شبیه زیری ظاهر شد.
کد :
mknod /dev/hello c 213 214 215 و ...
و بعد از این دستور دوباره همون پیغام بالا رو نشون داد(البته این بار با شماره ی 215)


پاسخ: مشکل»تست اسکریپت - mah454 - 2010-03-30

ببخشید من با دستور mknode آشنا نیستم . نمیتونم کمکتون کنم !


پاسخ: مشکل»تست اسکریپت - مهمان - 2010-03-30

به هر حال ممنون چون امروز یه چیز جدید(دیباگ اسکریپت) رو یاد گرفتم.tnx
سایر دوستان نظری ندارن؟


پاسخ: مشکل»تست اسکریپت - a.gh.n - 2010-03-30

کد :
major=$(awk "\$2= =\"$module\" {print \$1}" /proc/devices)
نباید به صورت زیر باشه؟:
کد :
major=$(awk "\$2==\"$module\" {print \$1}" /proc/devices)
stderr رو ریدایرکت که نمی کنید؟


پاسخ: مشکل»تست اسکریپت - مهمان - 2010-03-31

کد :
نباید به صورت زیر باشه؟:
چرا، من در اینجا اشتباه تایپ کردم؛چون تحت qemu دارم ابونتو رو اجرا می کنم نمی تونم اطلاعات رو از qemu کپی بیارم تو os خودم.

نقل قول :stderr رو ریدایرکت که نمی کنید؟
کل اسکریپت در پست اول هست؛نه ریدیرکتی انجام نمی شه.
گفتم تمام گیرش در قسمت mknod هست.


پاسخ: مشکل»تست اسکریپت - a.gh.n - 2010-03-31

mknod خودش که مشکلی نداره... major مقدار اشتباهی می گیره. اون را چاپ کنید ببینید. من اسکریپت رو ران کردم و major مقدار صحیحی داشت.