From: John Keeping Date: Tue, 29 Jan 2013 12:09:23 GMT Subject: Re: [PATCH v2 0/4] Auto-generate mergetool lists Message-ID: <20130129120923.GE7498@serenity.lan> In-Reply-To: On Tue, Jan 29, 2013 at 12:56:58PM +0100, Joachim Schmitz wrote: > John Keeping wrote: > > Currently I'm extracting the command word using: > > > > cmd=$(eval -- "set -- $(git config mergetool.$tool.cmd); echo > > \"$1\"") > > Shouldnt this work? > cmd=$((git config "mergetool.$tool.cmd" || git config "difftool.$tool.cmd") > | awk '{print $1}') That doesn't handle paths with spaces in, whereas the eval in a subshell does: $ cmd='"my command" $BASE $LOCAL $REMOTE' $ echo "$cmd" | awk '{print $1}' "my $ ( eval -- "set -- $cmd; echo \"\$1\"" ) my command John