[KURS] Programowanie w powłoce #6 – obliczanie wyrażeń

W szóstej części kursu Programowanie w powłoce przedstawię operatory arytmetyczne.

Operatory arytmetyczne
Operator Działanie
+, – dodawanie i odejmowanie
!, ~ logiczna i bitowa negacja
** potęga
*, /, % mnożenie, dzielenie, reszta z dzielenia
<<, >> przesunięcie bitowe
<=, >=, <, >, ==, != porównania
&, ^, | bitowe AND, XOR oraz OR
&&, || logiczne AND oraz OR
wyrażenie1?wyrażenie2:wyrażenie3 wyrażenie warunkowe
=, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |= przypisania

Przykłady

Poniższy trywialny skrypt pokazuje zastosowanie operatorów:

#!/bin/bash

x=1

[KURS] Programowanie w powłoce #5: strumienie, potoki i filtry

Nadszedł czas na kolejną część kursu Programowanie w powłoce. Dzisiaj przedstawię podstawowe informacje dotyczące strumieni, potoków oraz filtrów.

Strumienie

Procesy w systemie korzystają z trzech strumieni:

  • stdin – standardowe wejście (deskryptor 0) – przeważnie jest to klawiatura komputera.
  • stdout – standardowe wyjście (deskryptor 1) – przeważnie jest to monitor komputera,
  • stderr – standardowe wyjście błędów (deskryptor 2) – przeważnie jest to monitor komputera.

Do przekierowania używa się znaku > poprzedzonego odpowiednim deskryptorem np.:

szmitas@szmitas-ubuntu:~$ cat plik_ktorego_nie_ma.txt 2> bledy.txt
szmitas@szmitas-ubuntu:~$ cat bledy.txt
cat: plik_ktorego_nie_ma.txt: No such file or directory

Krótka analiza: poleceniem cat próbuję wyświetlić zawartość pliku, który nie istnieje – czyli wystąpi błąd, który zostaje wyłapany (2>) i przekierowany do pliku tekstowego o nazwie bledy.txt.
Inny przykład:

szmitas@szmitas-ubuntu:~/Pulpit/pliki$ ls > lista.txt
szmitas@szmitas-ubuntu:~/Pulpit/pliki$ cat lista.txt
aMule
bieganie
filmy
gry
inne
lista.txt
programowanie
programy
sterowniki
wygląd
zdjęcia

[KURS] Programowanie w powłoce #4 – pętle

[KURS] Programowanie w powłoce #4 - pętle

Czwarta część serii artykułów Programowanie w powłoce zostanie poświęcona pętlom.
Pętle służą do wielokrotnego wykonywania tego samego fragmentu kodu. W Bashu rozróżniamy następujące pętle:

  • for,
  • select,
  • while,
  • until.

Jednak zanim przejdę do opisu poszczególnych pętli, przedstawię dwa polecenia, które przydatne są w działaniu z pętlami – break oraz continue.

Break

Polecenie break przerywa wykonywanie całej pętli tzn. jeśli w trakcie wykonywania pętli napotkana zostanie owa instrukcja, działanie pętli zostaje zakończone i następuje przejście do dalszej części kodu.

[KURS] Programowanie w powłoce #3 – instrukcje warunkowe

[KURS] Programowanie w powłoce #3 - instrukcje warunkowe

Kolejny artykuł z serii „Programowanie w powłoce” poświęcony jest wyrażeniu logicznemu test, instrukcji warunkowej if oraz instrukcji wyboru case. Znajdziesz również informacje dotyczące operatorów pozwalających na formułowanie złożonych wyrażeń logicznych, które można zastosować w warunkach instrukcji if (dotyczące zarówno zmiennych jak i plików).

Schemat działania wszystkich przedstawionych instrukcji jest taki sam – w zależności od warunku zostanie wykonany ciąg poleceń. Skoro wszystkie instrukcje działają tak samo, to po co ich aż tyle? Po przeczytaniu artykułu na pewno poznasz odpowiedź na to pytanie.

Od razu uprzedzam – stosowane w zapisie spacje (w zapisie instrukcji) nie są moim wymysłem a odgórnym wymogiem języka. Jeśli ich zabraknie, skrypt nie uruchomi się!
Warto zwrócić uwagę, że instrukcja warunkowa/wyboru kończy się w momencie wpisania jej odwrotnej nazwy (dla if będzie to fi, dla caseesac). Bez tego również skrypt się nie uruchomi.

Wyrażenie warunkowe test

Wyrażenie logiczne zbliżone jest do instrukcji warunkowej if jednak nie można go rozbudować. Rozpatruje jedynie dwa warunki – wyrażenie jest prawdziwe lub fałszywe

[KURS] Programowanie w powłoce #2 – zmienne

[KURS] Programowanie w powłoce #2 - zmienne

Zmienne w Bashu to swojego rodzaju kontenery, ponieważ mogą przechowywać dowolne wartości. W tym artykule dowiesz się co to są: słowa zastrzeżone, zmienne programowe, zmienne specjalne, zmienne systemowe oraz zmienne tablicowe.

Kilka informacji na temat zmiennych, które warto zapamiętać:

  • zmienne nie wymagają deklaracji,
  • nazwa zmiennej nie może być słowem zastrzeżonym – o czym za chwilę,
  • wielkość liter w nazwie zmiennej jest istotna,
  • do zmiennej można przypisać wartość każdego typu – całkowity, rzeczywisty, znak, ciąg znaków etc.,
  • zmienna, która wcześniej przechowywała wartość „pewnego typu” może również przechowywać wartość „innego typu”,
  • do zawartości zmiennej odwołujemy się poprzez znak $.

Słowa zastrzeżone

Słowa zastrzeżone to nazwy, które zarezerwowane są już dla konkretnych instrukcji w powłoce. Nazwa zmiennej nie powinna być słowem zastrzeżonym (ale może).