fzf
使用
/bin/sh
(posix shell)来执行您的命令。即使
/bin/SH
链接到
/bin/bash
它将在非POSIX特性上失败(如您的案例中的进程替换)。你可以强制
GNU/BASH
支持:
export FZF_DEFAULT_COMMAND='set +o posix
(while read file; do echo $(git log --pretty=format:%ad -n 1 --date=raw -- $file) $file; done < <(git ls-tree -r --name-only HEAD) | sort -k1,1n | awk {"print \$3"}) 2> /dev/null'
如果你没有
bash
联想到
/bin/SH
你必须摆脱过程替代:
export FZF_DEFAULT_COMMAND='
(git ls-tree -r --name-only HEAD)|(while read file; do echo $(git log --pretty=format:%ad -n 1 --date=raw -- $file) $file; done | sort -k1,1n | awk {"print \$3"}) 2> /dev/null'