この「あいまいなリダイレクト」を解決する方法

この「あいまいなリダイレクト」を解決する方法

関数を含むスクリプトがあります。

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

私はこれが2行から来ていることがわかりました。

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

おすすめ記事