(6 risposte)
Chiuso 6 anni fa.
Per il mio primo script bash, voglio creare qualcosa che mi abbia davvero infastidito:quando cambio cartella, voglio che il contenuto di quella cartella venga spostato automaticamente. Ho provato ad aggiungere questo codice seguente a ~/.bashrc:
alias go='cd; ls'
Abbastanza semplice ho pensato! Non così. Durante la digitazione di go /etc
elenca effettivamente il contenuto di /etc, la mia directory di lavoro non è effettivamente cambiata, sono ancora in quella in cui mi trovavo prima. Come posso rimediare?
Risposta accettata:
Nel tuo esempio, go /etc
farà cd; ls /etc
. Ciò significa, prima, cd
cambierà la directory corrente nella tua directory home. Quindi, ls /etc
visualizzerà il contenuto di /etc
.
Puoi ottenere ciò che desideri definendo una funzione, in questo modo:
function go() {
cd "$1" && ls
}
Oppure digitalo semplicemente nella riga di comando su una singola riga:
function go() { cd "$1" && ls; }
Quindi go /etc
farà quello che vuoi.
$1
fa riferimento al primo parametro passato al comando in questo esempio /etc
. Puoi fare riferimento ai parametri successivi con $2
, $3
e così via.