(6 odpovědí)
Uzavřeno před 6 lety.
Pro svůj první bash skript chci vytvořit něco, co mě opravdu štve:když přepínám složky, chci, aby se obsah této složky automaticky zobrazoval. Pokusil jsem se přidat tento následující kód do ~/.bashrc:
alias go='cd; ls'
Dost jednoduché, myslel jsem! Není tak. Při psaní go /etc
skutečně uvádí obsah /etc, můj pracovní adresář se ve skutečnosti nezměnil, stále jsem v tom, ve kterém jsem byl předtím. Jak to napravím?
Přijatá odpověď:
Ve vašem příkladu go /etc
udělá cd; ls /etc
. To znamená, že nejprve cd
změní aktuální adresář na váš domovský adresář. Poté ls /etc
zobrazí obsah /etc
.
Definováním funkce můžete dosáhnout toho, co chcete, například takto:
function go() {
cd "$1" && ls
}
Nebo jej napište do příkazového řádku na jeden řádek:
function go() { cd "$1" && ls; }
Poté go /etc
udělá, co chcete.
$1
odkazuje na první parametr předaný příkazu v tomto příkladu /etc
. Na následující parametry můžete odkazovat pomocí $2
, $3
a tak dále.