שמירת פרמטרים של פונקציה שקוראת לפונקציה ב-bash
שלום לכולם
יש לי בעיה שפרמטרים של פונקציה שעטופים בגרשיים, מאבדים אותן בקריאה לפונקציה מתוך פונקציה אחרת.
אני מנסה ליצור מעטפת שתריץ פונקציות אחרות, אבל אני לא מצליח להעביר את כל המשתנים כמו שצריך.
זה לא מאוד מסובך, אבל קצת מבלבל, אז הכנתי דוגמא מפושטת של הבעיה:
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 מראה שלכאורה הכל תקין:
אבל הפלט מהפונקציה נראה כך:
כשהרצתי עם -x, שמתי לב שמשום מה הפרמטרים מחולקים בצורה מוזרה:
+ 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
אשמח מאוד לעזרה.
שלום לכולם
יש לי בעיה שפרמטרים של פונקציה שעטופים בגרשיים, מאבדים אותן בקריאה לפונקציה מתוך פונקציה אחרת.
אני מנסה ליצור מעטפת שתריץ פונקציות אחרות, אבל אני לא מצליח להעביר את כל המשתנים כמו שצריך.
זה לא מאוד מסובך, אבל קצת מבלבל, אז הכנתי דוגמא מפושטת של הבעיה:
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
אשמח מאוד לעזרה.