Fix #481 - Use $SHELL instead of sh in execute action

Note that $SHELL only points to the default shell instead of the current
shell. If you're on a non-default shell, you might want to override the
value like follows.

  SHELL=zsh fzf --bind 'enter:execute:echo $ZSH_VERSION; sleep 1'
This commit is contained in:
Junegunn Choi
2016-02-03 04:46:02 +09:00
parent 1893eca41a
commit 30bd0b53db
2 changed files with 21 additions and 1 deletions

View File

@@ -720,7 +720,11 @@ func quoteEntry(entry string) string {
func executeCommand(template string, replacement string) {
command := strings.Replace(template, "{}", replacement, -1)
cmd := exec.Command("sh", "-c", command)
shell := os.Getenv("SHELL")
if len(shell) == 0 {
shell = "sh"
}
cmd := exec.Command(shell, "-c", command)
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr