op te lossen een script met een functie erin:
function install_log() { echo "$1" >> $INSTALL_LOG_OUTPUT 2>&1 }
Deze functie werkt zoals het hoort. Het is een functie om iets in een logbestand te schrijven.
Ik heb een aantal andere commandos aan het script toegevoegd voor het lezen van de gegeven parameters van het script:
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"
Maar met de nieuwe regels, Ik krijg een aantal niet benodigde berichten:
$INSTALL_LOG_OUTPUT: ambiguous redirect
Ik kwam erachter dat dit uit de twee regels komt
install_log "-> parameter $argument" # ... install_log "# AUTOMATIC_INSTALL: $AUTOMATIC_INSTALL"
Weet iemand waarom de berichten worden weergegeven.
Reacties
Antwoord
Zet aanhalingstekens rond INSTALL_LOG_OUTPUT in uw functie, als volgt:
function install_log() { echo "$1" >> "$INSTALL_LOG_OUTPUT" 2>&1 }
Nadat u uw script opnieuw heeft uitgevoerd, krijgt u waarschijnlijk een foutmelding die aangeeft dat INSTALL_LOG_OUTPUT leeg is, met een bericht van deze soort: bash: : No such file or directory
.
INSTALL_LOG_OUTPUT
leeg zijn is één reden.test
van deif
-instructie. Het moet[ "$argument" == "-automatic" ]; then
zijn. Het kan al dan niet verband houden met de gerapporteerde fout.$INSTALL_LOG_OUTPUT
was drie regels later -.-