함수가 포함된 스크립트가 있습니다.
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
.