所有bash历史记录在包含空格的目录上没有此类文件或目录错误

时间:2013-03-07 18:30:37

标签: bash .bash-profile

我一直在尝试实施博客文章“All of bash history revisited”中描述的功能。基本上,脚本允许您执行的操作是永久保留所有bash历史记录并保持多个会话。

有人善意地制作了所有代码easily accessible on Github

但是每当我使用带空格的目录时:

cd ~/Desktop/
mkdir "dir with spaces"
cd dir\ with\ spaces/

下次登录时出现以下错误:

-bash: pushd: /Users/jack/Desktop/dir: No such file or directory
-bash: pushd: with: No such file or directory
-bash: pushd: spaces: No such file or directory

我理解的唯一参考似乎没有引起问题:

# Now change to the new dir and add to the top of the stack
pushd "${the_new_dir}" > /dev/null

我希望一些bash脚本专家可以指出代码中的错误,以便我可以修补它。

1 个答案:

答案 0 :(得分:4)

这是罪魁祸首:

for x in `hd 20` `pwd`; do cd_func $x ; done

替换为:

( hd 20; pwd ) | while read x; do cd_func "$x"; done

在github repo发出拉取请求。