בעיה בהרצה של while getopts
שלום,
יש לי אוסף קבצים אשר אמורים להריץ התקנה מסויימת ע"י סקריפטי BASH.
באחד הקבצים ההתקנה נכשלת בגלל בעיה של קריאת פרמטרים.
# Parse command line argumentswhile getopts a:c:i:n:s:u:w:h argdo case $arg in a) IP_ADDRS[${NUM_IP_ADDR}]=$OPTARG NUM_IP_ADDR=$(( NUM_IP_ADDR + 1 )) ;; c) PC=$OPTARG ;; i) SDF_ID=$OPTARG ;; n) NAME=$OPTARG ;; p) PHASE=$OPTARG ;; s) STACK_TYPE=$OPTARG ;; u) APP_SSNS[${NUM_APP_SSNS}]=$OPTARG NUM_APP_SSNS=$(( NUM_APP_SSNS + 1 )) ;; w) PASSWD=$OPTARG ;; h) usage ;; ?) usage ;; \?) echo "Invalid option: -$OPTARG" usage ;; echo "Option -$OPTARG requires and argument" usage ;; esacdone<some additional calls>
הקריאה לקובץ זה מבוצעת מקובץ אחר עם אוסף פרמטרים הבא:
ניסיתי לקחת את הקובץ ולהריץ אותו ב cygwin ובמוד debug לראות מה קורה בקטע קוד הנ"ל, אבל הפלט היחידי שאני רואה זה רק את
לאחר מכן הוא קופץ לפקודה הבאה שמדיעה אחרי לולאת ה while.
אשמח לעזרה מה חסר פה.
תודה
שלום,
יש לי אוסף קבצים אשר אמורים להריץ התקנה מסויימת ע"י סקריפטי BASH.
באחד הקבצים ההתקנה נכשלת בגלל בעיה של קריאת פרמטרים.
#!/bin/bash
<some functions and additional parameter declaration># Parse command line argumentswhile getopts a:c:i:n:s:u:w:h argdo case $arg in a) IP_ADDRS[${NUM_IP_ADDR}]=$OPTARG NUM_IP_ADDR=$(( NUM_IP_ADDR + 1 )) ;; c) PC=$OPTARG ;; i) SDF_ID=$OPTARG ;; n) NAME=$OPTARG ;; p) PHASE=$OPTARG ;; s) STACK_TYPE=$OPTARG ;; u) APP_SSNS[${NUM_APP_SSNS}]=$OPTARG NUM_APP_SSNS=$(( NUM_APP_SSNS + 1 )) ;; w) PASSWD=$OPTARG ;; h) usage ;; ?) usage ;; \?) echo "Invalid option: -$OPTARG" usage ;; echo "Option -$OPTARG requires and argument" usage ;; esacdone<some additional calls>
הקריאה לקובץ זה מבוצעת מקובץ אחר עם אוסף פרמטרים הבא:
-p install -s ITU -w pass -i 4 -c 9455 -n test101 -u 9 -a 1.1.1.1 -a 1.1.1.2
ניסיתי לקחת את הקובץ ולהריץ אותו ב cygwin ובמוד debug לראות מה קורה בקטע קוד הנ"ל, אבל הפלט היחידי שאני רואה זה רק את
getopts a:c:i:n:p:s:u:w:h arg
לאחר מכן הוא קופץ לפקודה הבאה שמדיעה אחרי לולאת ה while.
אשמח לעזרה מה חסר פה.
תודה