You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I use eval "$(zoxide init bash)" in my ~/.bashrc on Windows within Git Bash. This has worked flawlessly for me in the past, but today I started seeing this error:
bash: syntax error near unexpected token `}'
Here is the script which is generated by zoxide init bash:
# shellcheck shell=bash# =============================================================================## Utility functions for zoxide.## pwd based on the value of _ZO_RESOLVE_SYMLINKS.function__zoxide_pwd() {
\command cygpath -w "$(\builtin pwd -P)"
}
# cd + custom logic based on the value of _ZO_ECHO.function__zoxide_cd() {
# shellcheck disable=SC2164\builtin cd -- "$@"
}
# =============================================================================## Hook configuration for zoxide.## Hook to add new entries to the database.
__zoxide_oldpwd="$(__zoxide_pwd)"function__zoxide_hook() {
\builtin local -r retval="$?"\builtin local pwd_tmp
pwd_tmp="$(__zoxide_pwd)"if [[ ${__zoxide_oldpwd}!="${pwd_tmp}" ]];then
__zoxide_oldpwd="${pwd_tmp}"\command zoxide add -- "${__zoxide_oldpwd}"fireturn"${retval}"
}
# Initialize hook.if [[ ${PROMPT_COMMAND:=}!=*'__zoxide_hook'* ]];then
PROMPT_COMMAND="__zoxide_hook;${PROMPT_COMMAND#;}"fi# =============================================================================## When using zoxide with --no-cmd, alias these internal functions as desired.#
__zoxide_z_prefix='z#'# Jump to a directory using only keywords.function__zoxide_z() {
# shellcheck disable=SC2199if [[ $#-eq 0 ]];then
__zoxide_cd ~elif [[ $#-eq 1 &&$1=='-' ]];then
__zoxide_cd "${OLDPWD}"elif [[ $#-eq 1 &&-d$1 ]];then
__zoxide_cd "$1"elif [[ $#-eq 2 &&$1=='--' ]];then
__zoxide_cd "$2"elif [[ ${@: -1}=="${__zoxide_z_prefix}"?* ]];then# shellcheck disable=SC2124\builtin local result="${@: -1}"
__zoxide_cd "${result:${#__zoxide_z_prefix}}"else\builtin local result
# shellcheck disable=SC2312
result="$(\command zoxide query --exclude "$(__zoxide_pwd)" -- "$@")"&&
__zoxide_cd "${result}"fi
}
# Jump to a directory using interactive search.function__zoxide_zi() {
\builtin local result
result="$(\command zoxide query --interactive -- "$@")"&& __zoxide_cd "${result}"
}
# =============================================================================## Commands for zoxide. Disable these using --no-cmd.#\builtin unalias z &>/dev/null ||\builtin truefunctionz() {
__zoxide_z "$@"
}
\builtin unalias zi &>/dev/null ||\builtin truefunctionzi() {
__zoxide_zi "$@"
}
# Load completions.# - Bash 4.4+ is required to use `@Q`.# - Completions require line editing. Since Bash supports only two modes of# line editing (`vim` and `emacs`), we check if either them is enabled.# - Completions don't work on `dumb` terminals.if [[ ${BASH_VERSINFO[0]:-0}-eq 4 &&${BASH_VERSINFO[1]:-0}-ge 4 ||${BASH_VERSINFO[0]:-0}-ge 5 ]] &&
[[ :"${SHELLOPTS}": =~ :(vi|emacs): &&${TERM}!='dumb' ]];then# Use `printf '\e[5n'` to redraw line after fzf closes.\builtin bind'"\e[0n": redraw-current-line'&>/dev/null
function__zoxide_z_complete() {
# Only show completions when the cursor is at the end of the line.
[[ ${#COMP_WORDS[@]}-eq$((COMP_CWORD +1)) ]] ||return# If there is only one argument, use `cd` completions.if [[ ${#COMP_WORDS[@]}-eq 2 ]];then\builtin mapfile -t COMPREPLY <<(\builtin compgen -A directory -- "${COMP_WORDS[-1]}"||\builtin true)# If there is a space after the last word, use interactive selection.elif [[ -z${COMP_WORDS[-1]} ]] && [[ ${COMP_WORDS[-2]}!="${__zoxide_z_prefix}"?* ]];then\builtin local result
# shellcheck disable=SC2312
result="$(\command zoxide query --exclude "$(__zoxide_pwd)" --interactive -- "${COMP_WORDS[@]:1:${#COMP_WORDS[@]}-2}")"&&
COMPREPLY=("${__zoxide_z_prefix}${result}/")
\builtin printf'\e[5n'fi
}
\builtin complete -F __zoxide_z_complete -o filenames -- z
\builtin complete -r zi &>/dev/null ||\builtin truefi# =============================================================================## To initialize zoxide, add this to your configuration (usually ~/.bashrc):## eval "$(zoxide init bash)"
If I pipe it to a file zoxide-init.sh and attempt to run source zoxide-init.sh it appears to give the same error for line 36 which appears to be the __zoxide_hook function:
$ source zoxide-init.sh
bash: zoxide-init.sh: line 36: syntax error near unexpected token `}'bash: zoxide-init.sh: line 36: `}'
Below are the different versions I have installed:
Item
Version
Zoxide
0.9.6
OS
Windows 11 Version 22H2 (OS Build 22621.4460)
Shell
GNU bash, version 5.2.37(1)-release (x86_64-pc-msys)
Git
git version 2.47.1.windows.1
The text was updated successfully, but these errors were encountered:
jamiebarrow
changed the title
bash: syntax error near unexpected token `}'
Win11 Git bash syntax error during eval of zoxide init
Dec 9, 2024
I use
eval "$(zoxide init bash)"
in my~/.bashrc
on Windows within Git Bash. This has worked flawlessly for me in the past, but today I started seeing this error:bash: syntax error near unexpected token `}'
Here is the script which is generated by zoxide init bash:
If I pipe it to a file
zoxide-init.sh
and attempt to runsource zoxide-init.sh
it appears to give the same error for line 36 which appears to be the__zoxide_hook
function:Below are the different versions I have installed:
The text was updated successfully, but these errors were encountered: