Bash - jak to zrobić, aby wynik polecenia został umieszczony w zmiennej?

1

Powiedzmy na przykład, że chcę wpisać polecenie pwd.

Daje mi to naprawdę długą ścieżkę do bieżącego katalogu, w którym jestem.

Naprawdę chciałbym to zrobić, aby móc przejść do zupełnie innego katalogu i nadal odnosić się do poprzedniego katalogu, w którym byłem, bez konieczności zapamiętywania poprzedniej ścieżki.

Czy jest na to jakiś sposób?

Chuck testa
źródło

Odpowiedzi:

7

W jednym zadajesz kilka różnych pytań. : P
Najpierw zajmiemy się przypisywaniem zmiennych.
Aby umieścić wynik polecenia w zmiennej, możesz użyć składni wstecznej `` lub $ (). Na przykład:

MYPWD=`pwd`
MYPWD=$(pwd)

Aby uzyskać więcej informacji, zobacz sekcję Zastępowanie poleceń na stronie podręcznika bash (1). Łatwo dostępny pod adresem : http://linux.die.net/man/1/bash

Ale jeśli chodzi o twoje pytanie dotyczące przejścia do poprzedniego katalogu, bash ma do tego wbudowaną składnię. Po prostu zrób cd -a bash zabierze Cię tam, gdzie byłeś.

# cd /usr/local/bin
# cd /var/log/apache2
# cd -
# pwd
/usr/local/bin

Aby uzyskać bardziej zaawansowaną obsługę katalogów / płyt CD, sprawdź stronę podręcznika dla pushdi, popdktóra pozwala zbudować stos katalogów, których możesz użyć.

Mattias Ahnberg
źródło
1
Może również wspomnieć, że ${OLDPWD}jest to zmienna, która już zawiera poprzedni katalog.
nicerobot