Unix / Linux - zastępowanie powłoki
Co to jest podstawienie?
Powłoka dokonuje podstawienia, gdy napotka wyrażenie zawierające jeden lub więcej znaków specjalnych.
Przykład
W tym przypadku drukowana wartość zmiennej jest zastępowana jej wartością. W tym samym czasie,"\n" jest zastępowany nową linią -
#!/bin/sh
a=10
echo -e "Value of a is $a \n"
Otrzymasz następujący wynik. Tutaj-e opcja umożliwia interpretację znaków z ukośnikiem odwrotnym.
Value of a is 10
Oto wynik bez -e opcja -
Value of a is 10\n
Następujące sekwencje specjalne, których można użyć w poleceniu echo -
Sr.No. | Ucieczka i opis |
---|---|
1 | \\ ukośnik wsteczny |
2 | \a alert (BEL) |
3 | \b Backspace |
4 | \c pominąć końcowy znak nowej linii |
5 | \f form feed |
6 | \n Nowa linia |
7 | \r powrót karetki |
8 | \t zakładka pozioma |
9 | \v zakładka pionowa |
Możesz użyć -E opcja wyłączająca interpretację odwrotnego ukośnika (domyślnie).
Możesz użyć -n możliwość wyłączenia wstawiania nowego wiersza.
Zastępowanie poleceń
Podstawianie poleceń to mechanizm, za pomocą którego powłoka wykonuje dany zestaw poleceń, a następnie zastępuje ich dane wyjściowe w miejsce poleceń.
Składnia
Podstawianie poleceń jest wykonywane, gdy polecenie jest podane jako -
`command`
Podczas podstawiania poleceń upewnij się, że używasz odwrotnego cudzysłowu, a nie pojedynczego cudzysłowu.
Przykład
Podstawianie poleceń jest zwykle używane do przypisywania wyniku polecenia do zmiennej. Każdy z poniższych przykładów ilustruje podstawianie poleceń -
#!/bin/sh
DATE=`date`
echo "Date is $DATE"
USERS=`who | wc -l`
echo "Logged in user are $USERS"
UP=`date ; uptime`
echo "Uptime is $UP"
Po wykonaniu otrzymasz następujący wynik -
Date is Thu Jul 2 03:59:57 MST 2009
Logged in user are 1
Uptime is Thu Jul 2 03:59:57 MST 2009
03:59:57 up 20 days, 14:03, 1 user, load avg: 0.13, 0.07, 0.15
Zastępowanie zmiennych
Podstawianie zmiennych umożliwia programiście powłoki manipulowanie wartością zmiennej w oparciu o jej stan.
Oto poniższa tabela dla wszystkich możliwych podstawień -
Sr.No. | Formularz i opis |
---|---|
1 | ${var} Zastąp wartość var . |
2 | ${var:-word} Jeśli zmienna jest pusta lub nieustawiona, podstawiane jest słowovar. Wartość var nie zmienia się. |
3 | ${var:=word} Jeśli zmienna ma wartość null lub nie jest ustawiona, zmienna jest ustawiana na wartośćword. |
4 | ${var:?message} Jeśli zmienna jest pusta lub nieustawiona, komunikat jest wypisywany na standardowy błąd. Sprawdza, czy zmienne są ustawione poprawnie. |
5 | ${var:+word} Jeśli ustawiona jest zmienna, zmienna jest zastępowana słowem . Wartość var nie zmienia się. |
Przykład
Poniżej znajduje się przykład pokazujący różne stany powyższego podstawienia -
#!/bin/sh
echo ${var:-"Variable is not set"}
echo "1 - Value of var is ${var}"
echo ${var:="Variable is not set"}
echo "2 - Value of var is ${var}"
unset var
echo ${var:+"This is default value"}
echo "3 - Value of var is $var"
var="Prefix"
echo ${var:+"This is default value"}
echo "4 - Value of var is $var"
echo ${var:?"Print this message"}
echo "5 - Value of var is ${var}"
Po wykonaniu otrzymasz następujący wynik -
Variable is not set
1 - Value of var is
Variable is not set
2 - Value of var is Variable is not set
3 - Value of var is
This is default value
4 - Value of var is Prefix
Prefix
5 - Value of var is Prefix