GoGPT Best VPN GoSearch

סמל OnWorks

xargsposix - מקוון בענן

הפעל את xargsposix בספק אירוח חינמי OnWorks דרך Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

זוהי הפקודה xargsposix שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות החינמיות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS.

תָכְנִית:

שֵׁם


xargs - בניית רשימות ארגומנטים והפעלת תוכנה

תַקצִיר


קסארגס [−ptx] [אוֹפְסְטְר] [−אני replstr|−L מספר|−n מספר]
[−ס גודל] [תועלת [טענה...]]

תיאור


השמיים קסארגס כלי עזר יבנה שורת פקודה המורכבת מ- תועלת ו טענה
אופרנדים שצוינו ואחריהם מספר ארגומנטים הנקרא ברצף מהקלט הסטנדרטי כנדרש
התאמה במגבלות אורך ומספר שצוינו על ידי האפשרויות. קסארגס שירות יהיה
לאחר מכן הפעל את שורת הפקודה שנבנתה והמתן להשלמתה. רצף זה יעשה זאת
לחזור על עצמו עד שיתרחש אחד מהבאים:

* זוהה מצב סוף קובץ בקלט סטנדרטי.

* ארגומנט המורכב רק ממחרוזת סוף הקובץ הלוגית (ראה את אוֹפְסְטְר
אפשרות) נמצאת בקלט סטנדרטי לאחר עיבוד מרכאות כפולות,
עיבוד, ו עיבוד -escape (ראה פסקה הבאה). כל הארגומנטים למעלה
אך לא כולל את הארגומנט המורכב רק ממחרוזת סוף הקובץ הלוגית
ישמשו כארגומנטים בשורות פקודה בנויות.

קריאה של שורת פקודה בנויה מחזירה סטטוס יציאה של 255.

על היישום לוודא שהארגומנטים בקלט הסטנדרטי מופרדים על ידי
לא מצוטט דמויות, לא בורחות תווים, או תווים. א
מחרוזת של אפס או יותר שאינה במירכאות כפולות ('"') תווים ולא דמויות יכולות
יש לצטט אותם על ידי צירוףם במרכאות כפולות. מחרוזת של אפס או יותר שאינן
('\'') תווים ולא ניתן לצטט תווים על ידי צירוף שלהם בתוך
תווים. ניתן להציב בריחה בכל תו שאינו במרכאות על ידי הוספת סימן יציאה לפניו.
השירות ששמו תועלת יבוצע פעם אחת או יותר עד ש-
סוף הקובץ הושג או שנמצאה מחרוזת סוף הקובץ הלוגית. התוצאות הן
לא צוין אם כלי השירות ששמו נקרא על ידי תועלת מנסה לקרוא מהקלט הסטנדרטי שלו.

אורך שורת הפקודה שנוצר יהיה סכום הגודל בבתים של כלי השירות
שם וכל ארגומנט מטופלים כמחרוזות, כולל סיום בייט ריק עבור כל אחד מהם
המיתרים האלה. ה קסארגס כלי השירות יגביל את אורך שורת הפקודה כך שכאשר
כאשר שורת הפקודה מופעלת, רשימות הארגומנטים והסביבה המשולבות (ראה את Exec משפחה
של פונקציות בנפח ממשקי המערכת של POSIX.1‐2008) לא יעלה על
{ARG_MAX}−2048 בתים. בתוך אילוץ זה, אם אף אחד מה- −n וגם לא −ס האפשרות היא
אם צוין, אורך שורת הפקודה המוגדר כברירת מחדל יהיה לפחות {LINE_MAX}.

אפשרויות


השמיים קסארגס כלי השירות יתאים לנפח הגדרות הבסיס של POSIX.1-2008, סעיף
12.2, שירות תחביר הנחיות.

האפשרויות הבאות יתמכו:

אוֹפְסְטְר השתמש אוֹפְסְטְר כמחרוזת סוף הקובץ הלוגית. אם לא מצוין, זה כן
לא צוין האם מחרוזת סוף הקובץ הלוגית היא ה- אוֹפִי
('_') או שאפשרות מחרוזת סוף הקובץ מושבתת. כאשר אוֹפְסְטְר הוא האפס
מחרוזת, יכולת מחרוזת סוף הקובץ הלוגית תושבת ו
יש לקחת את הדמויות פשוטו כמשמעו.

−אני replstr
מצב הכנס: תועלת מבוצע עבור כל שורה לוגית מהקלט הסטנדרטי.
ארגומנטים בקלט הסטנדרטי יופרדו רק על ידי תווים ללא חיפוש.
דמויות, לא לפי כל תווים ללא ציטוט ללא חיפוש דמויות
בתחילת כל שורה יתעלמו. הארגומנט המתקבל יהיה
מוכנס ב טיעונים במקום כל התרחשות של replstrלפחות חמישה
טיעונים ב טיעונים כל אחד יכול להכיל מופע אחד או יותר של replstr. כל
של הארגומנטים הבנויים הללו לא יכולים לגדול יותר מגודל מוגדר-מימוש
מגבלה גדולה או שווה ל-255 בתים. אפשרות −x ייכפה.

מספר השמיים תועלת יבוצע עבור כל שדה שאינו ריק מספר קווי טיעונים מ
קלט סטנדרטי. הקריאה האחרונה של תועלת יהיה עם פחות שורות של
ארגומנטים אם פחות מ מספר נשארים. שורה נחשבת כמסתיימת ב-
רֵאשִׁית אלא אם כן התו האחרון בשורה הוא נגרר
מסמן המשך לשורה הבאה שאינה ריקה, כולל.

−n מספר להפעיל תועלת שימוש בכמה שיותר ארגומנטים סטנדרטיים של קלט, עד מספר
(מספר שלם עשרוני חיובי) מקסימום ארגומנטים. יש להשתמש בפחות ארגומנטים
אם:

* אורך שורת הפקודה שנצבר חורג מהגודל שצוין על ידי −ס
אפשרות (או {LINE_MAX} אם אין −ס אוֹפְּצִיָה).

* באיטרציה האחרונה יש פחות מ מספר, אך לא אפס, אופרנדים שנותרו.

-עמ' מצב בקשה: המשתמש נשאל האם לבצע תועלת בכל קריאה.
מצב מעקב (−ת) מופעל כדי לכתוב את מופע הפקודה לביצוע,
ואחריה הנחיה לסטנדרט שגיאה. תשובה חיובית נקראת מ
/dev/tty יבצע את הפקודה; אחרת, קריאה מסוימת זו של
תועלת יודלג.

−ס גודל להפעיל תועלת שימוש בכמה שיותר ארגומנטים סטנדרטיים של קלט מניב
אורך שורת הפקודה קטן מ גודל (מספר שלם עשרוני חיובי) בתים. פחות
יש להשתמש בארגומנטים אם:

* המספר הכולל של הארגומנטים עולה על זה שצוין על ידי −n אוֹפְּצִיָה.

* המספר הכולל של השורות עולה על זה שצוין על ידי אוֹפְּצִיָה.

* נתקלת בסוף קובץ בקלט סטנדרטי לפני גודל בתים הם
צָבוּר.

ערכים של גודל תמיכה בעד {LINE_MAX} בתים לפחות תינתן, בתנאי ש
האילוצים המפורטים בתיאור מתקיימים. זה לא ייחשב כ
שגיאה אם ​​הערך גדול מזה הנתמך על ידי המימוש או
ניתנת חריגה מהאילוצים שצוינו בתיאור; קסארגס ישתמש
הערך הגדול ביותר שהוא תומך בו במסגרת המגבלות.

−ת הפעל מצב מעקב. כל שורת פקודה שנוצרת תיכתב בתקן
שגיאה ממש לפני ההפעלה.

−x סיום אם שורת פקודה שנבנתה לא תתאים למצב המשתמע או שצוין
גודל (ראה את −ס אפשרות למעלה).

אופרנדים


האופרנדים הבאים יהיו נתמכים:

תועלת שם כלי השירות שיופעל, שנמצא על ידי נתיב חיפוש באמצעות ה- נתיב
משתנה סביבה, המתואר בכרך Base Definitions של POSIX.1‐2008,
הפרק 8, סביבה משתנים. אם תועלת מושמט, ברירת המחדל תהיה
מה היא הד תוֹעֶלֶת. אם ה תועלת אופרנד נותן שמות לכל אחד מהפונקציות המובנות המיוחדות
שירותים ב סעיף 2.14, מיוחד מובנה תשתיות, התוצאות הן
לא מוגדר.

טענה אפשרות או אופרנד ראשוניים לקריאה של תועלת.

STDIN


הקלט הסטנדרטי יהיה קובץ טקסט. התוצאות אינן מוגדרות אם קובץ סוף קובץ
המצב מזוהה מיד לאחר בריחה .

קלט קבצים


הקובץ /dev/tty ישמש לקריאת התשובות הנדרשות על ידי -עמ' אוֹפְּצִיָה.

הסביבה וריאציות


משתני הסביבה הבאים ישפיעו על הביצוע של קסארגס:

שפה ספק ערך ברירת מחדל עבור משתני הבינאום שאינם מוגדרים או
ריק. (ראה את הכרך של הגדרות הבסיס של POSIX.1-2008, סעיף 8.2,
בינאום משתנים בעד הבכורה של בינאום
משתנים המשמשים לקביעת הערכים של קטגוריות מקומיות.)

LC_ALL אם מוגדר לערך מחרוזת לא ריקה, עוקף את הערכים של כל האחרים
משתני בינאום.

LC_COLLATE
קבע את המקום להתנהגות של טווחים, מחלקות שקילות ורב-
רכיבי איסוף תווים המשמשים בביטוי הרגולרי המורחב שהוגדר עבור
מה היא yesexpr מילת מפתח מקומית ב- LC_MESSAGES קטגוריה.

LC_CTYPE קבע את המקום לפרשנות של רצפים של בתים של נתוני טקסט
כתווים (לדוגמה, בייט בודד לעומת תווים מרובי בייטים ב
ארגומנטים וקבצי קלט) וההתנהגות של מחלקות תווים המשמשות ב-
ביטוי רגולרי מורחב שהוגדר עבור yesexpr מילת מפתח מקומית ב-
LC_MESSAGES קטגוריה.

LC_MESSAGES
קבע את המקום המשמש לעיבוד תגובות חיוביות, ואת המקום המשמש
כדי להשפיע על הפורמט והתוכן של הודעות אבחון והנחיות שנכתבו אליהם
שגיאת תקן.

NLSPATH קבע את המיקום של קטלוגי הודעות לעיבוד של LC_MESSAGES.

נתיב קבע את המיקום של תועלת, כמתואר בכרך הגדרות הבסיס
של POSIX.1-2008, הפרק 8, סביבה משתנים.

אסינכרוני אירועים


בְּרִירַת מֶחדָל.

STDOUT


לא בשימוש.

STDERR


יש להשתמש בשגיאת התקן עבור הודעות אבחון ו- −ת ו -עמ' אפשרויות. אם ה
−ת האפשרות מצוינת, ה תועלת ורשימת הארגומנטים הבנויה שלה תיכתב אל
שגיאת תקן, כפי שתופעל, לפני ההפעלה. אם -עמ' מצוין, הנחיה
בפורמט הבא ייכתב (במיקום POSIX):

"?..."

בסוף שורת הפלט מ −ת.

תפוקה קבצים


אין.

מורחבים תיאור


אין.

יְצִיאָה סטָטוּס


יוחזרו ערכי היציאה הבאים:

0 כל הקריאות של תועלת החזיר סטטוס יציאה אפס.

1‐125 לא ניתן היה להרכיב שורת פקודה שעמדה בדרישות שצוינו, אחת או יותר
עוד מהקריאות של תועלת החזיר סטטוס יציאה שאינו אפס, או סטטוס אחר
אירעה שגיאה.

126 כלי השירות שצוין על ידי תועלת נמצא אך לא ניתן היה להפעילו.

127 כלי השירות שצוין על ידי תועלת לא ניתן למצוא.

השלכות OF שגיאות


אם לא ניתן להרכיב שורת פקודה העומדת בדרישות שצוינו, כלי השירות
לא ניתן להפעילו, קריאה של התועלת מסתיימת על ידי אות, או
קריאה של יציאות השירות עם סטטוס יציאה 255, ה- קסארגס חברת החשמל תכתוב
הודעת אבחון ויציאה מבלי לעבד את הקלט שנותר.

השמיים הבא סעיפים יש לו אִינפוֹרמָטִיבִי.

בקשה נוהג


סטטוס היציאה 255 מאפשר שימוש של שירות על ידי קסארגס לספר קסארגס לסיים אם זה
יודע שלא יצליחו קריאות נוספות המשתמשות בזרם הנתונים הנוכחי. לכן, תועלת
צריך במפורש יציאה עם ערך מתאים כדי למנוע חזרה בטעות עם 255.

שימו לב שמכיוון שהקלט מנותח כשורות, תווים מפרידים בין ארגומנטים, ו
, , ותווי מרכאות כפולים משמשים לציטוט, אם קסארגס is
משמש לאגד את הפלט של פקודות כמו למצוא dir −הדפסה or ls לתוך פקודות להיות
בוצע, תוצאות בלתי צפויות צפויות אם שמות קבצים כלשהם מכילים , , או
ציטוט תווים. ניתן לפתור זאת באמצעות find כדי לקרוא לסקריפט שממיר כל אחד מהם
קובץ שנמצא במירכאות ולאחר מכן מועבר אליה קסארגס, אבל ברוב המקרים זה כן
עדיף פשוט שיהיה למצוא בצעו את צבירת הארגומנטים עצמה באמצעות −exec עם '+'
שליחות קטלנית במקום ';'שימו לב שכללי הציטוט בהם משתמשים קסארגס אינם זהים ל
במעטפת. הם לא נעשו עקביים כאן מכיוון שיישומים קיימים תלויים ב
הכללים הנוכחיים. שיטה קלה (אך לא יעילה) שניתן להשתמש בה כדי לשנות קלט
המורכב מארגומנט אחד בכל שורה בצורה של ציטוט קסארגס מפרש נכון הוא
להקדים כל אי- דמות עם חלופות יעילות יותר
מוצגים בדוגמה 2 ובדוגמה 5 להלן.

במימושים עם ערך גדול עבור {ARG_MAX}, קסארגס עשוי לייצר שורות פקודה
ארוך יותר מ-{LINE_MAX}. עבור הפעלה של כלי עזר, זו אינה בעיה. אם קסארגס is
בשימוש ליצירת קובץ טקסט, על המשתמשים להגדיר במפורש את שורת הפקודה המקסימלית
אורך עם ה- −ס אוֹפְּצִיָה.

השמיים הפקודה, env, נחמד, nohup, זמן, ו קסארגס צוינו כלי עזר לשימוש ביציאה
קוד 127 אם מתרחשת שגיאה כדי שיישומים יוכלו להבחין בין "כשל במציאת א
כלי השירות'' מתוך ``כלי השירות שהופעל יצא עם ציון שגיאה''. הערך 127 היה
נבחר משום שאינו משמש בדרך כלל למשמעויות אחרות; רוב כלי השירות משתמשים בערכים קטנים
עבור ``תנאי שגיאה רגילים'' והערכים מעל 128 ניתן לבלבל עם סיום
עקב קבלת אות. הערך 126 נבחר באופן דומה כדי לציין זאת
ניתן היה למצוא את כלי השירות, אך לא להפעיל אותו. סקריפטים מסוימים מייצרים שגיאה משמעותית
הודעות המבדילות בין המקרים 126 ל-127. ההבחנה בין קודי יציאה 126 ו
127 מבוסס על תרגול KornShell שמשתמש ב-127 כאשר כל הניסיונות לעשות זאת Exec השירות
להיכשל עם [ENOENT], ומשתמש ב-126 כאשר כל ניסיון לעשות זאת Exec השירות נכשל עבור כל אחד אחר
סיבה.

דוגמאות


1. הפקודה הבאה משלבת את הפלט של הפקודות בסוגריים (מינוס ה-
תווים) לשורה אחת, אשר לאחר מכן מצורפת ליומן הקבצים. זה
מניחה שההרחבה של "דולר אחד"$*" אינו כולל כלום אוֹ
תווים.

(שם יומן; תַאֲרִיך; הדפס "'%s'\n$0 "$*") | קסארגס "" >>יומן

2. הפקודה הבאה מפעילה הבדל עם זוגות עוקבים של ארגומנטים שהוקלדו במקור
כארגומנטים של שורת הפקודה. זה מניח שאין טביעות אצבע משובצות דמויות ב
האלמנטים של רשימת הארגומנטים המקורית.

הדפס "%s\n$@" | צמא 's/[^[:alnum:]]/\\&/g' |
קסארגס "" −n 2 −x הבדל

3. בפקודות הבאות, המשתמש נשאל אילו קבצים נמצאים בספרייה הנוכחית
(לא כולל קבצי dotfile) יש לאחסן בארכיון. הקבצים מאוחסנים בארכיון קשת; a, אחד בכל אחד
זמן או b, רבים בו זמנית. הפקודות מניחות שאף שם קובץ אינו מכיל ,
, , , או תווי מרכאות כפולים.

a. ls | קסארגס "" -עמ' 1 ar −ר קשת

ב. ls | xargs −E "" −p −L 1 | xargs −E "" ar −r arch

4. הפקודה הבאה מפעילה פקודה 1 פעם אחת או יותר עם מספר ארגומנטים,
עוצר אם קריאה של פקודה 1 בעל סטטוס יציאה שאינו אפס.

קסארגס "" sh פקודה 1 "$@" || יציאה 255 ' sh < קלט_xargs

5. במערכות תואמות XSI, הפקודה הבאה מעבירה את כל הקבצים מהספרייה $1 ל
בספרייה $2, ומשחזר כל פקודת תנועה רגע לפני ביצועה. זה מניח שאין
שמות הקבצים מכילים דמויות ושלא אחת מהן $1 ולא $2 מכיל את
רצף "{}".

ls "$ 1" | צמא s/"/"\\"/g 's/.*/"&"/' |
קסארגס "" −אני {} −ת mv "$1"/{} "$2"/{}

Rationalale


השמיים קסארגס תועלת נמצאה בדרך כלל רק במערכות מבוססות System V; מערכות BSD כללו
an להגיש מועמדות כלי עזר שסיפק פונקציונליות דומה ל- קסארגס −n מספררשימות ה-SVID
קסארגס כהרחבה לפיתוח תוכנה. כרך זה של POSIX.1‐2008 אינו חולק את
השקפה זו היא שהיא משמשת רק לפיתוח, ולכן היא אינה אופציונלית.

היישום הקלאסי של ה- קסארגס התועלת נמצאת בשילוב עם ה- למצוא תועלת ל
להפחית את מספר התהליכים המופעלים על ידי שימוש פשטני ב- למצוא −exec שילוב.
השמיים קסארגס כלי עזר משמש גם לאכיפת מגבלה עליונה של הזיכרון הנדרש להפעלת
תהליך. על בסיס זה בחשבון, כרך זה של POSIX.1‐2008 בחר רק את המינימלי
תכונות נדרשות.

למרות שסטטוס היציאה של 255 הוא בעיקר תאונה של יישומים היסטוריים, הוא
מאפשר שימוש בכלי עזר על ידי קסארגס לספר קסארגס לסיים אם לא ידוע לו עוד
קריאות המשתמשות בזרם הנתונים הנוכחי יצליחו. כל סטטוס יציאה שאינו אפס מ-
התועלת נופלת בטווח 1-125 כאשר קסארגס יציאות. אין הצהרה כיצד ה
קודי סטטוס יציאה שונים של שירותים שאינם אפס נצברים על ידי קסארגסהערך יכול להיות
חיבור כל הקודים, הערך הגבוה ביותר שלהם, האחרון שהתקבל, או ערך יחיד
כמו 1. מכיוון שאין אלגוריתם שניתן לטעון שהוא טוב יותר מהאחרים, ומכיוון שרבים מה
כלי עזר סטנדרטיים אומרים מעט יותר (באופן נייד) מאשר "עבר/נכשל", לא נוצר אלגוריתם חדש
בדוי.

כמה אחרים קסארגס האפשרויות הוסרו מכיוון שכבר קיימות חלופות פשוטות בתוכן
כרך זה של POSIX.1‐2008. לדוגמה, ה- replstr אפשרות זו יכולה להיות יעילה באותה מידה
מבוצע באמצעות מעטפת ל לולאה. מאז קסארגס קורא ל- Exec פונקציה עם כל שורת קלט,
מה היא האפשרות בדרך כלל לא מנצלת את יכולות הקיבוץ של קסארגס.

הדרישה ש קסארגס לעולם לא מייצר שורות פקודה כך שקריאה של תועלת is
בתוך 2048 בייטים מרגע הגעה ל-POSIX Exec מגבלות {ARG_MAX} נועדו להבטיח
שלכלי השירות המופעל יש מקום לשנות את משתני הסביבה שלו ואת שורת הפקודה שלו
ארגומנטים ועדיין להיות מסוגל להפעיל כלי עזר אחר. שימו לב שהמינימום {ARG_MAX}
המותר על ידי נפח ממשקי המערכת של POSIX.1‐2008 הוא 4096 בתים והמינימום
הערך המותר על ידי אמצעי אחסון זה של POSIX.1‐2008 הוא 2048 בתים; לכן, 2048 בתים
ההבדל נראה סביר. עם זאת, שימו לב ש קסארגס ייתכן שלעולם לא יוכלו להפעיל את
התועלת אם הסביבה עברה אל קסארגס מתקרב לשימוש ב-{ARG_MAX} בייטים.

הגרסה של קסארגס נדרש על ידי כרך זה של POSIX.1‐2008 להמתין ל-
השלמת הפקודה שהופעלה לפני הפעלת פקודה אחרת. הדבר נעשה מכיוון
כתבים היסטוריים באמצעות קסארגס ביצוע סדרתי משוער. יישומים שרוצים
לספק פעולה מקבילה של כלי השירות המופעלים, מומלץ להוסיף אפשרות
מאפשר קריאה מקבילה, אך עדיין צריך להמתין לסיום של כל הילדים
לפני קסארגס מסתיים כרגיל.

השמיים האפשרות הושמטה מתקן ISO POSIX‐2:1993 מתוך אמונה ש- אוֹפְסְטְר
ארגומנט האפשרות זוהה רק כאשר הוא היה בשורה בפני עצמו ולפני ציטוט ו-
בוצעו עיבודי בריחה, וכי עיבוד סוף הקובץ הלוגי בוצע רק
מופעל אם א אפשרות זו צוינה. במקרה כזה, פשוט צמא ניתן להשתמש בסקריפט כדי
לשכפל את פונקציונליות. חקירה נוספת העלתה כי:

* נבדקה מחרוזת סוף הקובץ הלוגית לאחר עיבוד ציטוט ו-escape,
עושה a צמא סקריפט שסיפק פונקציונליות מקבילה הרבה יותר קשה ל
לכתוב.

* ברירת המחדל הייתה ביצוע עיבוד לוגי של סוף קובץ עם כמו ה-
מחרוזת סוף קובץ לוגית.

כדי לתקן אי-הבנה זו, ה- אוֹפְסְטְר האפשרות אומצה מ-X/Open
מדריך ניידות. על המשתמשים לשים לב שתיאור ה- התאמות אפשרויות
תיעוד היסטורי של אפשרות (אשר לא אומצה משום שלא
לתמוך בהנחיות תחביר התועלת), באומרו שאם אוֹפְסְטְר הוא מחרוזת הריק,
עיבוד לוגי של סוף קובץ מושבת. יישומים היסטוריים של קסארגס למעשה
לא ביטלו עיבוד לוגי של סוף קובץ; הם טיפלו בארגומנט ריק שנמצא ב-
קלט כמחרוזת סוף קובץ לוגית. (ריק מחרוזת ניתן ליצור ארגומנט באמצעות
מרכאות בודדות או כפולות ('' or ""). מאחר שהתנהגות זו לא תועדה היסטורית,
זה נחשב לבאג.

השמיים −אני, , ו −n אפשרויות הן אפשרויות ששוללות זו את זו. חלק מהמימושים משתמשים באחרונה.
מצוין אם ניתן יותר מאחד בשורת הפקודה; יישומים אחרים מטפלים
שילובים של האפשרויות בדרכים שונות.

FUTURE כיוונים


אין.

השתמש ב-xargsposix באופן מקוון באמצעות שירותי onworks.net


שרתים ותחנות עבודה בחינם

הורד אפליקציות Windows & Linux

פקודות לינוקס

Ad




×
פרסומת
❤️קנו, הזמינו או קנו כאן - ללא עלות, עוזר לשמור על שירותים בחינם.