이 "모호한 리디렉션"을 해결하는 방법

이 "모호한 리디렉션"을 해결하는 방법

함수가 포함된 스크립트가 있습니다.

function install_log() {
    echo "$1" >> $INSTALL_LOG_OUTPUT 2>&1
}

기능이 제대로 작동하고 있습니다. 로그 파일에 무언가를 쓰는 기능입니다.

스크립트의 지정된 매개변수를 읽는 스크립트에 몇 가지 추가 명령을 추가했습니다.

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"

하지만 새 줄이 나타나면 원치 않는 메시지가 표시됩니다.

$INSTALL_LOG_OUTPUT: ambiguous redirect

나는 이것이 두 줄에서 나온다는 것을 알았습니다.

install_log "-> parameter $argument"
# ...
install_log "# AUTOMATIC_INSTALL: $AUTOMATIC_INSTALL"

이런 메시지가 왜 나타나는지 아시는 분 계신가요?

답변1

다음과 같이 함수의 INSTALL_LOG_OUTPUT 주위에 따옴표를 추가합니다.

function install_log() {
    echo "$1" >> "$INSTALL_LOG_OUTPUT" 2>&1
}

스크립트를 다시 실행한 후 다음 메시지와 함께 INSTALL_LOG_OUTPUT이 비어 있음을 나타내는 오류 메시지를 받을 수 있습니다 bash: : No such file or directory.

관련 정보