פורסם 2007 בנובמבר 818 שנים שלום,אשמח אם תוכלו לעזור לי, אני יודע שרוב ההודעות כאן הם רק על התקנות וכמה יפה לינוקס אבל אני יותר מתעניין בפקודות של הshell אז אם יש צדיק...בבקשהלדוגמה הקוד הנ"ל , שאלתי היא מה בדיוק הביטוי בתוך ה while אומר , אני יודע שזה ביטוי בוליאני ששואל האם מספר השורות במשתנה line שונה מ0 אבל מזה הסוגריים המסולסלות ומתי משתמשים ואיך מספר השורות קטן בדיוק, כך שהלולאה תעצור?set line = ($<)set i = 0while (${#line} !=0) @i = $i + $line[3] echo $line set line = ($<)endתודהאוקי די הבנתי את את הביטוי בלולאה אבל עדיין לא איך המשתנה LINE קטן...?
פורסם 2007 בנובמבר 818 שנים זה נראה לי כמו קוד של cshעצה מס 1 תתרחק מ csh ותשתמש רק ב bash או אפילו ב perl/pythonולשאלתך הסוגריים המסולסלות מסמנות את גבולות המשתנה line#. למעשה X$ הוא קיצור של {X}$. הביטוי מכיל את מספר האברים בוקטור line. חוקי התחביר העקומים של csh נותנים לביטוי $# עדיפות ואז הביטוי היה השירשור של #$ עם המילה line שכנראה תתן שגיאת הרצה (כנראה אין לי csh מין לבדוק).הלולאה תעצר כאשר הקלט יהיה שורה ריקה .
פורסם 2007 בנובמבר 818 שנים מחבר האמת כמעט ולא הבנתי כלום ממה שרשמת...אבל בכל זאת אולי אני אדייק בשאלתי...ואין שגיאת תחביר. הקוד הזה המייצג את מספר הארגומנטים ב line כלומר מספר השורות${#line}שאלתי היא איך מתבצע השימוש בפקודה (>$) (שמקבלת קלט) וליתר דיוק הקוד הנ"ל echo $line set line = ($<)תודה
פורסם 2007 בנובמבר 918 שנים אני שוב רוצה להדגיש אם אין לך סיבה ממש טובה אז אל תתעסק עם csh תעבור לbash/האמת כמעט ולא הבנתי כלום ממה שרשמת...אבל בכל זאת אולי אני אדייק בשאלתי...ואין שגיאת תחביר. הקוד הזה המייצג את מספר הארגומנטים ב line כלומר מספר השורותלא זה מספר המילים במשתנה line לא מספר השורות.$ csh% set line=(foo bar baz)% echo $linefoo bar baz% echo ${#line}3% echo $#line3אני רואה שבגרסאות האחרונות של csh זה כבר לא נותן שגיאה.שאלתי היא איך מתבצע השימוש בפקודה (>$) (שמקבלת קלט) וליתר דיוק הקוד הנ"ל echo $line set line = ($<)>$ זה פסדו-משתנה (builtin). כאשר csh צריך להעריך את המשתנה הזה הוא קורא את הקלט עד לסוף השורה הנוכחית ויחזיר את הערך הזה.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.