所以我从这个讨论开始,它基本上完全符合我的要求。
但是,在使用参数(例如cd -P dir. 任何保留空白和允许选项标志的想法?
这是我目前使用的功能。
function cd {
new_directory="$*";
if [ $# -eq 0 ]; then
new_directory=${HOME};
fi;
builtin cd "${new_directory}" && ls;
}
Run Code Online (Sandbox Code Playgroud)
例如,与上述,cd -P My\ Documents/成为cd "-P My Documents"这显然失败。
当你写的时候$*,你已经失去了:这消除了参数中的空格和分隔参数的空格之间的区别。"$@"改为使用,每个参数扩展为一个单词。
function cd {
builtin cd "$@" && ls
}
Run Code Online (Sandbox Code Playgroud)