Quando você escreve $*
, você perdeu: isso apaga a distinção entre espaços em um argumento e espaços para separar argumentos. Use "$@"
, que se expande para uma palavra por argumento.
function cd {
builtin cd "$@" && ls
}
Então eu comecei com this discussão, e basicamente faz exatamente o que eu quero.
No entanto, a solução para preservar o espaço em branco do diretório usando aspas falha ao usar argumentos, por exemplo, %código%. Alguma idéia para preservar o espaço em branco e permitir bandeiras de opções?
Esta é a função que estou usando no momento.
function cd {
new_directory="$*";
if [ $# -eq 0 ]; then
new_directory=${HOME};
fi;
builtin cd "${new_directory}" && ls;
}
Por exemplo, com o acima, cd -P dir
se torna cd -P My\ Documents/
, o que obviamente falha.
Quando você escreve $*
, você perdeu: isso apaga a distinção entre espaços em um argumento e espaços para separar argumentos. Use "$@"
, que se expande para uma palavra por argumento.
function cd {
builtin cd "$@" && ls
}
Tags command-line bash