Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
bash - Wikipedia, wolna encyklopedia

bash

Z Wikipedii

Ten artykuł dotyczy powłowki systemowej UNIX. Zobacz też: bash.org.pl.
Przykładowa sesja Basha
Przykładowa sesja Basha

bashpowłoka systemowa UNIX napisana dla projektu GNU. Program jest rozprowadzany na licencji GPL.

Bash to jedna z najpopularniejszych powłok systemów uniksowych. Jest domyślną powłoką w większości dystrybucji systemu GNU/Linux oraz w systemie Mac OS X w wersji 10.4 Tiger, istnieją także wersje dla większości systemów uniksowych. Bash jest także domyślną powłoką w środowisku Cygwin dla systemów Win32.

Bash umożliwia pracę interaktywną i wsadową. Język basha umożliwia definiowanie aliasów, funkcji, zawiera konstrukcje sterujące przepływem (if, while, for, ...). Powłoka bash zachowuje historię wykonywanych poleceń. Jest ona zapisywana w pliku .bash_history w katalogu domowym użytkownika.

Spis treści

[edytuj] Historia

Nazwa jest akronimem od Bourne-Again Shell (ang. gra słów: fonetycznie brzmi tak samo, jak Born again shell, czyli odrodzona powłoka). Wywodzi się od powłoki Bourne'a sh, która była jedną z pierwszych i najważniejszych powłok systemu UNIX oraz zawiera pomysły zawarte w powłokach Korna i csh. Pierwotna powłoka Bourne'a była tworzona przez Stephena Bourne'a. Bash był pisany głównie przez Briana Foksa i Cheta Rameya w 1987.

Powłoka Bourne'a sh została stworzona około 1977. W roku 1990 jej głównym opiekunem został Chet Ramey.

[edytuj] Język powłoki bash

[edytuj] Najciekawsze możliwości

Język powłoki bash jest rozszerzeniem powłoki sh. Większość skryptów przeznaczonych dla powłoki sh działa bez zmian w powłoce bash, wyjątkami są skrypty, które odwołują się do wbudowanych zmiennych powłoki Bourne'a lub używają wbudowanych poleceń tej powłoki. Składnia poleceń powłoki bash zawiera idee pochodzące z powłoki Korna i csh takie jak edycja linii poleceń (ang. command-line editing), historia poleceń, stos katalogów, zmienne $RANDOM i $PPID oraz POSIX-owe podstawianie polecenia (składnia: $((...))). Gdy bash jest używany interaktywnie, dostępne jest dokańczanie nazw plików, poleceń wbudowanych i zewnętrznych programów, zmiennych, itd. dzieje się to po naciśnięciu klawisza TAB.

[edytuj] Działania na liczbach całkowitych

Jednym z ograniczeń powłoki sh jest to, że nie umożliwia ona operowania na liczbach całkowitych bez tworzenia nowego procesu. Bash umożliwia wykonanie obliczeń za pomocą wyrażeń w podwójnych nawiasach ((...)) oraz składni $[...]. Przykładowo

x1=55             # Przypisz liczbę 55 do zmiennej x1. Nie może być spacji przed i po znaku równości.
((x1 = x1 + 1))   # Dodaj jeden do x1. Nie stawia się tutaj znaku '$'.
echo $((x1 + 1))  # Wypisz wartość x1+1 na ekran.
((++x1))          # Zwiększenie o jeden w stylu języka C.
((x1++))          # Podobnie jak powyżej ale teraz post-inkrementacja.
echo $[x1=x1*20]  # Pomnóż x1 przez 20, zapisz wynik do x1 i wypisz wynik na ekran.
echo $((x1 * 20)) # To samo co powyżej, ale nie zapisuj wyniku do zmiennej.
echo $((x1<1000)) # Sprawdź czy x1 jest mniejsze od 1000. Zero oznacza fałsz.

Składnia ((...)) może być także wykorzystana w wyrażeniach warunkowych, ponieważ w wyniku wykonania zwracane jest 0 lub jeden w zależności od tego czy porównanie wartości zwraca fałsz czy prawdę

if ((x == y * 3 + z * 2))
then
        echo Yes
fi

((z > 23)) && echo Yes

Składnia ((...)) umożliwia posługiwanie się operatorami: '==', '!=', '>', '<', '>=' i '<='.

Bash nie umożliwia wykonywania obliczeń z wykorzystaniem liczb zmiennoprzecinkowych. Jedyne powłoki systemowe pozwalające na posługiwanie się liczbami zmiennoprzecinkowymi to powłoka Korna (1993) oraz zsh (od wersji 4.0).

[edytuj] Przekierowanie wejścia/wyjścia

Bash rozszerza składnię powłoki sh służącą do przekierowania wejścia/wyjścia. Możliwe jest skierowanie standardowego wejścia i standardowego wyjścia dla błędów do pliku w sposób krótszy niż w sh:

polecenie &> plik

W powłoce Bourne'a wyglądałoby to następująco 'polecenie > plik 2>&'. Od wersji 2.05b możliwe jest przekierowanie zmiennej na standardowe wejście polecenia:

polecenie <<< "Napis do przeczytania ze standardowego wejścia"
#można też użyć zmiennej
zmienna="Ala ma"
cat <<< "${zmienna} kota."

Przykład: Przekieruj standardowe wyjście do pliku, wypisz dane, zamknij plik, zresetuj wyjście:

exec 6>&1                # niech deskryptor pliku 6 stanie się kopią standardowego wyjścia
exec 1>test.dane         # otwórz plik test.dane do zapisu, deskryptor nr 1 oznacza,
                         # że trafi do niego standardowe wyjście
echo "dane:dane:dane"    # wypisz coś
exec 1<&-                # zamknij plik
exec 1>&6                # przywróć deskryptorowi 1 jego pierwotną funkcję
exec 6<&-                # zamknij deskryptor 6

Otwórz i zamknij plik:

# otwórz test.dane do czytania
exec 6<test.dane
# czytaj kolejne wiersze i wypisuj je, aż do napotkania końca pliku
while read -u 6 dane
do
   echo "$dane" 
done
# zamknij plik
exec 6<&-

Podstaw wyjście zewnętrznego polecenia do zmiennej:

# wyszukaj pliki których nazwa kończy się na literę "h"
# i zachowaj wynik w zmiennej ZM
ZM=$(find . -name "*h")

[edytuj] Wbudowana obsługa wyrażeń regularnych

Bash 3.0 posiada wbudowaną obsługę wyrażeń regularnych, dopasowanie odbywa się za pomocą składni przypominającej Perl:

[[ napis =~ wyrażenie ]]

Używa się standardowych wyrażeń regularnych opisanych na stronie regex(7) podręcznika man. Powyższe polecenie zwraca wartość 0, gdy dopasowanie udało się lub 1 w przeciwnym przypadku. Podwyrażenia otoczone nawiasami są dostępne w zmiennej powłoki BASH_REMATCH, tak jak w poniższym przykładzie:

if [[ abcfoobarbletch =~ foo(bar)bl(.*) ]]
then
        echo "Dopasowanie udało się\!"
        echo $BASH_REMATCH               # wypisuje: foobarbletch
        echo ${BASH_REMATCH[1]}          # wypisuje: bar
        echo ${BASH_REMATCH[2]}          # wypisuje: etch
fi

Używanie powyższej składni, zamiast programu grep, daje kod działający szybciej, ponieważ unika się kosztownego tworzenia nowego procesu.

[edytuj] Wersje

Najnowsza wersja powłoki bash nosi numer 3.2 i została opublikowana 11 października 2006.

[edytuj] Zobacz też

[edytuj] Linki zewnętrzne

W języku polskim

W języku angielskim

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com