(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.