Cytowanie
Znaki cytowania służą do usuwania interpretacji znaków specjalnych przez powłokę.
Wyróżniamy nastepujące znaki cytowania:
cudzysłów (ang. double quote)
" "
Między cudzysłowami umieszcza się tekst, wartości zmiennych zawierające spacje. Cudzysłowy zachowują znaczenie specjalne trzech znaków:
$ wskazuje na nazwę zmiennej, umożliwiając podstawienie jej wartości
\ znak maskujący
` ` odwrotny apostrof, umozliwia zacytowanie polecenia
Przykład:
#!/bin/bash
x=2
echo "Wartość zmiennej x to $x" #wydrukuje Wartość zmiennej x to 2
echo -ne "Usłyszysz dzwonek\a"
echo "Polecenie date pokaże: `date`"
apostrof (ang. single quote)
' '
Wszystko co ujęte w znaki apostrofu traktowane jest jak łańcuch tekstowy, apostrof wyłącza interpretowanie wszystkich znaków specjalnych, traktowane są jak zwykłe znaki.
Przykład:
#!/bin/bash
echo '$USER' #nie wypisze twojego loginu
odwrotny apostrof (ang. backquote)
` `
umożliwia zacytowanie polecenia, bardzo przydatne jeśli chce się podstawić pod zmienną wynik jakiegoś polecenia np:
Przykład:
#!/bin/bash
x=`ls -la $PWD`
echo $x #pokaże rezultat polecenia
Alternatywny zapis, który ma takie samo działanie wygląda tak:
#!/bin/bash
echo $(ls -la $PWD)
backslash czyli znak maskujący
\
Jego działanie najlepiej wyjaśnić na przykładzie: chcesz by na ekranie pojawił się napis $HOME
Przykład:
echo "$HOME" #wydrukuje /home/ja
aby wyłączyć interpretacje przez powłokę tej zmiennej, trzeba napisać:
echo \$HOME #i jest napis $HOME
Lista 5
wymagania znajomość:
umiejętność pisania i uruchamiania prostych skryptów,
read,echo
znaki cytowania:" " , ' ', ` `
zmienne: $#, $@, $?, $%, $1,$2...
1.Napisać skrypt, który będzie w jasny sposób
pokazywał różnice miedzy następujšcymi znakami
cytowania: " " , ' ', ` `.
2.Napisz skrypt, który będzie wywietlał liczbę
użytych przy wywołaniu skryptu parametrów oraz
te parametry.
3.Napisz skrypt, który będzie kopiował w
przyjemny sposób. Po wywołaniu skryptu bez
parametrów użytkownik ma zostać zapytany o plik
ródłowy i docelowy następnie skrypt ma skopiować
plik w wyznaczone miejsce.
4.Napisz skrypt do zczytywania haseł. W skrypcie ma
się pojawić pytanie o hasło, następnie użytkownik ma
wpisać hasło tak, aby nie pojawiło się na ekranie.
Hasło ma być dopisane w nowej linii do pliku haseł wraz
z nazwš użytkownika (uzyskanš przez odpowiedniš komendę).
Powodzenia
dr inż. Krzysztof Zatwarnicki
Lista słów zastrzeżonych:
!
case
do
done
elif
else
esac
fi
for
function
if
in
select
then
until
while
{
}
time
[
]
Specjalne
Są to zmienne tworzone przez system. Najczęściej nie można ich edytować. Poniżej znajdują się przykłady:
$0 - zmienna ta zawiera nazwę skryptu, w którym jest wywoływana.
$1,$2,$3...$9 - zmienne te zawierają argumenty wywołania skryptu
${10}, ${11}, ${12} - argumenty wywołania, powyżej $9. Muszą one być zapisane w nawiasach klamrowych, bo Bash po znaku $ traktuje pierwszą liczbę, jako numer argumentu wywołania skryptu.
$# - ilość argumentów z którymi skrypt został wywołany
$@ - wszystkie argumenty wywołania
$? - kod powrotu polecenia, które zostało wykonane jako ostatnie (zwany też kodem błędu, brak błędu - 0)
$$ - PID uruchomionego skryptu