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

  • INSTALL_LOG_OUTPUT az egyik ok az üresség.
  • Van szintaktikai hiba a if utasítás második test jében. Ennek [ "$argument" == "-automatic" ]; then kell lennie. Lehet, hogy kapcsolódik a jelentett hibához.
  • @muru: Igazad volt. A $INSTALL_LOG_OUTPUT fájlnév hozzárendelése három sorral később következett -.-

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.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük