egy szkript, amelyben benne van egy függvény:
function install_log() { echo "$1" >> $INSTALL_LOG_OUTPUT 2>&1 }
Ez a függvény úgy működik, ahogy kellene. Ez egy függvény, hogy valamit beírjunk egy naplófájlba.
Néhány más parancsot is felvettem a szkriptbe a szkript megadott paramétereinek elolvasásához:
AUTOMATIC_INSTALL= for argument in "$@" do install_log "-> parameter $argument" if [ "$argument" == "--automatic" ] || ["$argument" == "-automatic" ]; then AUTOMATIC_INSTALL=True fi done install_log "# AUTOMATIC_INSTALL: $AUTOMATIC_INSTALL"
De az új sorokkal Néhány nem szükséges üzenetet kapok:
$INSTALL_LOG_OUTPUT: ambiguous redirect
Megtudtam, hogy ez a két sorból származik
install_log "-> parameter $argument" # ... install_log "# AUTOMATIC_INSTALL: $AUTOMATIC_INSTALL"
Tudja valaki, miért fordulnak elő az üzenetek?
Megjegyzések
Válasz
Helyezzen idézőjeleket az INSTALL_LOG_OUTPUT köré a funkciójában, így:
function install_log() { echo "$1" >> "$INSTALL_LOG_OUTPUT" 2>&1 }
A szkript újbóli futtatása után valószínűleg hibaüzenetet kap, amely jelzi hogy az INSTALL_LOG_OUTPUT üres, ilyen típusú üzenettel: bash: : No such file or directory
.
INSTALL_LOG_OUTPUT
az egyik ok az üresség.if
utasítás másodiktest
jében. Ennek[ "$argument" == "-automatic" ]; then
kell lennie. Lehet, hogy kapcsolódik a jelentett hibához.$INSTALL_LOG_OUTPUT
fájlnév hozzárendelése három sorral később következett -.-