שמירת פרמטרים של פונקציה שקוראת לפונקציה ב-bash

נאטרוז

New member
שמירת פרמטרים של פונקציה שקוראת לפונקציה ב-bash

שלום לכולם :)

יש לי בעיה שפרמטרים של פונקציה שעטופים בגרשיים, מאבדים אותן בקריאה לפונקציה מתוך פונקציה אחרת.
אני מנסה ליצור מעטפת שתריץ פונקציות אחרות, אבל אני לא מצליח להעביר את כל המשתנים כמו שצריך.
זה לא מאוד מסובך, אבל קצת מבלבל, אז הכנתי דוגמא מפושטת של הבעיה:
fun1(){ V1=${1}
V2=${2}
V3=${3} echo "V1 = ${V1} , V2 = ${V2} , V3 = ${V3}"}fun2(){ local params=${1} param for param in "${@:2}" ; do params="${params} \"$param\"" done echo ${params} ${params}}fun2 fun1 "a b c d" AAA
פקודת echo מראה שלכאורה הכל תקין:

fun1 "a b c d" "AAA"
אבל הפלט מהפונקציה נראה כך:
V1 = "a , V2 = b , V3 = c
כשהרצתי עם -x, שמתי לב שמשום מה הפרמטרים מחולקים בצורה מוזרה:
+ fun2 fun1 'a b c d' AAA+ local params=fun1 param
+ for param in '"${@:2}"'
+ params='fun1 "a b c d"'
+ for param in '"${@:2}"'
+ params='fun1 "a b c d" "AAA"'
+ echo fun1 '"a' b c 'd"' '"AAA"'
fun1 "a b c d" "AAA"+ fun1 '"a' b c 'd"' '"AAA"'+ V1='"a'+ V2=b+ V3=c+ echo 'V1 = "a , V2 = b , V3 = c'V1 = "a , V2 = b , V3 = c

אשמח מאוד לעזרה.
 

רני538

New member
לא הבנתי את השימוש שעשית ב ${@:2}

לא הצלחתי לרשום את ביטוי נכון בנושא. הכונה ל
${@:2}
ב fun2.
 

Expect

New member
היי

מציע שתנסה לערוך את הקוד ב-vi כי נראה שיש כמה דברים לא קשורה שם (לפחות לא נראה לי שלזה התכוון המשורר)

בכל מקרה, מה האוטפוט שאתה מצפה\רוצה לקבל?
 
למעלה