(6 respuestas)
Cerrado hace 6 años.
Para mi primer script de bash, quiero crear algo que realmente me ha estado molestando:cuando cambio de carpeta, quiero que el contenido de esa carpeta se muestre automáticamente. Intenté agregar el siguiente código a ~/.bashrc:
alias go='cd; ls'
Bastante simple pensé! No tan. Mientras escribe go /etc
de hecho, enumera el contenido de /etc, mi directorio de trabajo en realidad no ha cambiado, todavía estoy en el que estaba antes. ¿Cómo soluciono esto?
Respuesta aceptada:
En tu ejemplo, go /etc
hará cd; ls /etc
. Eso significa, primero, cd
cambiará el directorio actual a su directorio de inicio. Entonces, ls /etc
mostrará el contenido de /etc
.
Podría lograr lo que desea definiendo una función, así:
function go() {
cd "$1" && ls
}
O simplemente escríbalo en la línea de comando en una sola línea:
function go() { cd "$1" && ls; }
Luego go /etc
hará lo que quieras.
$1
se refiere al primer parámetro pasado al comando en este ejemplo /etc
. Puede hacer referencia a los parámetros posteriores con $2
, $3
y así sucesivamente.