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