関数を含むスクリプトがあります。
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"
メッセージが発生している理由を誰かが知っていますか。
次のように、関数のINSTALL_LOG_OUTPUTを引用符で囲みます。
function install_log() {
echo "$1" >> "$INSTALL_LOG_OUTPUT" 2>&1
}
スクリプトを再度実行すると、おそらくINSTALL_LOG_OUTPUTが空であることを示すエラーメッセージと、次のようなメッセージが表示されます:bash: : No such file or directory
。