cd 到包含存储在 macOS Bash 变量中的空格的路径
cd to a path containing spaces stored in a variable in Bash on macOS
我有
x="/dir 1"
y=/dir\ 2
当我执行 cd $x
或 cd $y
时,出现错误。我不想 cd "$x"
因为
- 我不知道哪些变量包含带空格的路径
- 不方便
任何解决方法?
有一个 shell option 告诉 Bash 检查 cd
的参数是否是包含路径的变量:
shopt -s cdable_vars
y='/dir 2'
cd y
其中 cd y
等同于 cd "$y"
.
来自手册:
cdable_vars
If this is set, an argument to the cd
builtin command that is not a directory is assumed to be the name of a variable whose value is the directory to change to.
bash-completion 的最新版本检查是否设置了 shell 选项并提供 cd
的完整变量名称,但要使其正常工作,shell必须在加载完成之前设置选项。
cd
的默认完成设置是
complete -F _cd -o nospace cd pushd
要为此添加变量完成,已更改为
complete -v -F _cd -o nospace cd pushd
我有
x="/dir 1"
y=/dir\ 2
当我执行 cd $x
或 cd $y
时,出现错误。我不想 cd "$x"
因为
- 我不知道哪些变量包含带空格的路径
- 不方便
任何解决方法?
有一个 shell option 告诉 Bash 检查 cd
的参数是否是包含路径的变量:
shopt -s cdable_vars
y='/dir 2'
cd y
其中 cd y
等同于 cd "$y"
.
来自手册:
cdable_vars
If this is set, an argument to thecd
builtin command that is not a directory is assumed to be the name of a variable whose value is the directory to change to.
bash-completion 的最新版本检查是否设置了 shell 选项并提供 cd
的完整变量名称,但要使其正常工作,shell必须在加载完成之前设置选项。
cd
的默认完成设置是
complete -F _cd -o nospace cd pushd
要为此添加变量完成,已更改为
complete -v -F _cd -o nospace cd pushd