30 skryptów bash Pytania i odpowiedzi do wywiadu

30 Bash Script Interview Questions



Skrypty Bash to bardzo przydatny i potężny język programowania, który służy głównie do automatyzacji wszelkich zadań ręcznych. Osoba poszukująca pracy, która chce zostać testerem automatyzacji lub programistą bash, musi stawić czoła kilku typowym pytaniom podczas rozmowy kwalifikacyjnej. W systemie Linux istnieją różne typy skryptów powłoki. Jednym z popularnych i najczęściej używanych skryptów powłoki jest Bourne Again Shell lub Bash. W tym artykule opisano 30 ważnych pytań i odpowiedzi na rozmowę kwalifikacyjną na temat języka skryptowego bash, aby przygotować się do pracy.

#01. Co to jest skrypt bash?

Skrypt bash jest językiem programowania powłoki. Ogólnie rzecz biorąc, uruchamiamy wiele typów poleceń powłoki z terminala, wpisując każde polecenie osobno, co wymaga czasu i wysiłku. Jeśli musimy ponownie uruchomić te same polecenia, musimy ponownie wykonać wszystkie polecenia z terminala. Ale używając skryptu bash, możemy przechowywać wiele poleceń powłoki w jednym pliku bash i wykonać plik w dowolnym momencie za pomocą jednego polecenia. Wiele zadań związanych z administracją systemu, instalacją programu, tworzeniem kopii zapasowej dysku, analizowaniem logów itp. można wykonać za pomocą odpowiedniego skryptu bash.







#02. Jakie są zalety używania skryptów bash?

Skrypt bash ma wiele zalet, które opisujemy poniżej:



  • Jest łatwy w użyciu i nauce.
  • Wiele ręcznych zadań, które muszą być często uruchamiane, można wykonać automatycznie, pisząc skrypt bash.
  • Sekwencja wielu poleceń powłoki może być wykonana jednym poleceniem.
  • Skrypt Bash napisany w jednym systemie operacyjnym Linux można z łatwością wykonać w innym systemie operacyjnym Linux. Jest więc przenośny.
  • Debugowanie w bash jest łatwiejsze niż w innych językach programowania.
  • Składnia wiersza poleceń i polecenia używane w terminalu są podobne do poleceń i składni używanych w skrypcie bash.
  • Skrypt Bash może być używany do łączenia się z innymi plikami skryptów.

#03. Wymień wady skryptów bash

Poniżej wymieniono niektóre wady skryptu bash:



  • Działa wolniej niż inne języki.
  • Niewłaściwy skrypt może uszkodzić cały proces i wygenerować skomplikowany błąd.
  • Nie nadaje się do tworzenia dużych i złożonych aplikacji.
  • Zawiera mniej struktury danych w porównaniu do innych standardowych języków programowania.

#04. Jakie typy zmiennych są używane w bash?

W skrypcie bash można używać dwóch typów zmiennych. To są:

Zmienne systemowe
Zmienne predefiniowane i utrzymywane przez system operacyjny Linux nazywane są zmiennymi systemowymi. Zmienne tego typu są zawsze używane przez wielką literę. Domyślne wartości tych zmiennych można zmienić w zależności od wymagań.

„zestaw”, „śr”. i ` printenv Do wydrukowania listy zmiennych systemowych można użyć poleceń `.

Przykład:





#!/kosz/bash
# Drukowanie zmiennych systemowych

#Wydrukuj nazwę powłoki Bash
wyrzucił $BASH

# Wydrukuj wersję powłoki Bash
wyrzucił $BASH_VERSION

# Wydrukuj nazwę katalogu domowego
wyrzucił $HOME

Zmienna zdefiniowana przez użytkownika

Zmienne tworzone i utrzymywane przez użytkowników nazywane są zmiennymi zdefiniowanymi przez użytkownika. Nazywa się je również zmiennymi lokalnymi. Te typy zmiennych można deklarować za pomocą małych lub wielkich liter lub zarówno wielkich, jak i małych liter. Lepiej jednak unikać używania wielkich liter do odróżnienia zmiennych od zmiennych systemowych.
Przykład:

#!/kosz/bash

na jednego=100
wyrzucił $liczba

#05. Jak deklarować i usuwać zmienne w bash?

Zmienna może być zadeklarowana w bash według typu danych lub bez typu danych. Jeśli jakakolwiek zmienna bash jest zadeklarowana bez ogłosić polecenie, to zmienna będzie traktowana jako łańcuch. Zmienna Bash jest zadeklarowana z ogłosić polecenie, aby zdefiniować typ danych zmiennej w deklaracji czasu.



-r , -i, -a, -A, -l, -u, -t oraz -X opcje mogą być używane z ogłosić polecenie, aby zadeklarować zmienną z różnymi typami danych.

Przykład:

#!/kosz/bash

#Zadeklaruj zmienną bez żadnego typu
na jednego=10

#Wartości będą łączone, ale nie dodawane
wynik=$liczba+20
wyrzucił $wynik

#Zadeklaruj zmienną z typem całkowitym
ogłosić -i na jednego=10

#Wartości zostaną dodane
ogłosić -i wynik=liczba+20
wyrzucił $wynik

nieoprawny Polecenie służy do usunięcia dowolnej zmiennej bash. Po użyciu zmienna będzie niedostępna lub niezdefiniowana nieoprawny Komenda.

Przykład:

#!/kosz/bash

P=„Podpowiedź Linuksa”
wyrzucił $ str
nieoprawny $ str
wyrzucił $ str

#06. Jak dodawać komentarze w skrypcie bash?

W skrypcie bash można używać komentarzy jednoliniowych i wieloliniowych. ‘ # Symbol ‘ jest używany do komentarza jednowierszowego. '<<’ symbol z ogranicznikiem i „:” z pojedynczym (‘) służą do dodawania komentarza wieloliniowego.

Przykład:

#!/kosz/bash
#Wydrukuj tekst [Komentarz jednowierszowy]
wyrzucił „Programowanie Bash”
< Oblicz sumę
Z dwóch liczb [komentarz wielowierszowy]
Dodaj komentarz

na jednego=25+35
wyrzucił $liczba
:'
Połącz dwa
Dane ciągu [komentarz wielowierszowy]
'

Strunowy='Dzień dobry'
wyrzucił $string' Świat'

#07. Jak połączyć ciągi w skrypcie basha?

Wartości łańcuchowe można łączyć w bash na różne sposoby. Zwykle wartości ciągu są łączone przez umieszczanie razem, ale w bash istnieją inne sposoby łączenia danych ciągu.

Przykład:

#!/kosz/bash
#Zainicjuj zmienne
str1=„PHP”
str2='Grzmotnąć'
str3='Perl'

# Wydrukuj ciąg razem ze spacją
wyrzucił $str1 $str2 $str3

#Połącz wszystkie zmienne i zapisz w innej zmiennej
P='$str1,$str2oraz$str3'

#Połącz inne dane ciągu z istniejącą wartością ciągu
str + ='są języki skryptowe'

#Wydrukuj ciąg
wyrzucił $ str

#08. Jakie polecenia są używane do drukowania danych wyjściowych w bash?

„echo” oraz `printf` Polecenia mogą być używane do drukowania danych wyjściowych w bash. echo Polecenie ` służy do wypisania prostego wyjścia i `printf` Polecenie służy do drukowania sformatowanego wyjścia.

Przykład:

#!/kosz/bash

#Wydrukuj tekst
wyrzucił 'Witamy w LinuxHint'
Strona='linuxhint.pl'
#Wydrukuj sformatowany tekst
printf '%s to popularna witryna blogowa ' $strona

#09. Jak pobierać dane z terminala w bash?

`czytaj` Polecenie jest używane w skrypcie bash do pobierania danych wejściowych z terminala.

Przykład:

#!/kosz/bash
#Wydrukuj wiadomość
wyrzucił 'Wpisz swoje imię'
#Weź dane wejściowe od użytkownika
czytaćNazwa
# Wydrukuj wartość $name z innym ciągiem
wyrzucił 'Twoje imię to$imię'

#10. Jak używać argumentów wiersza poleceń w bash?

Argumenty wiersza poleceń są odczytywane przez $1, $2, $3…$n zmienne. Wartości argumentów wiersza poleceń są podawane w terminalu podczas wykonywania skryptu bash. 1 zł służy do odczytywania pierwszego argumentu, 2 zł służy do odczytywania drugiego argumentu i tak dalej.

Przykład:

#!/kosz/bash
#Sprawdź, czy podano argument, czy nie
Jeśli [[ $ # -równe 0 ]];następnie
wyrzucił – Nie podano żadnego argumentu.
Wyjście 0
być
#Zapisz wartość pierwszego argumentu
kolor=1 zł
# Wydrukuj argument z innym łańcuchem
printf 'Twój ulubiony kolor to %s ' $ kolor

# 11. Czy bash jest słabo napisanym językiem? Czemu?

Tak, bash jest uważany za słabo lub luźno typizowany język, ponieważ nie wymaga deklarowania typu danych w momencie deklaracji zmiennej. Wszystkie zmienne bash są domyślnie traktowane jako ciągi znaków, a typ zmiennej zostanie ustawiony na podstawie bieżącej wartości. Zmienne Bash z typami danych można zdefiniować za pomocą ogłosić polecenie z określoną opcją. Jednak opcje definiowania typów danych są ograniczone i nie obsługują wszystkich typów danych. Na przykład, pływak typ danych nie może być zadeklarowany za pomocą ogłosić Komenda.

Przykład:

#!/kosz/bash

#Typ danych $myVar to domyślnie ciąg
myVar=29

# Wydrukuj zmienną
wyrzucił $myVar

# Zadeklaruj zmienną całkowitą $liczba o wartości 67
ogłosić -i numer=67

#Wydrukuj zmienną
wyrzucił $liczba

# Przypisz dane ciągu do zmiennej numerycznej. Poniższa linia wygeneruje
# błąd składni i wartość $liczba się nie zmieni
numer=„Lubię bash”
wyrzucił $liczba

#12. Jak odczytać drugie słowo lub kolumnę z każdego wiersza pliku?

Drugie słowo lub kolumnę pliku można odczytać w skrypcie basha za pomocą różnych poleceń basha, takich jak `awk`, `sed` itp. W tym przypadku użycie „awk” pokazano w poniższym przykładzie.
Przykład: Załóżmy, że plik course.txt zawiera następującą treść i wydrukowaliśmy tylko drugie słowo każdego wiersza tego pliku.

Programowanie Java CSE201
Struktura danych CSE303
Programowanie uniksowe CSE408#!/kosz/bash
# Poniższy skrypt wypisze drugie słowo każdej linii z pliku course.txt.
# dane wyjściowe polecenia cat zostaną przekazane do polecenia awk, które odczyta drugie słowo
# każdego wiersza.
wyrzucił ``Kotkurs.txt| awk „{drukuj $2}”``

# 13. Jak zadeklarować i uzyskać dostęp do zmiennej tablicowej w bash?

Skrypt bash obsługuje zarówno tablice numeryczne, jak i asocjacyjne. Zmienna tablicowa może być zadeklarowana z poleceniem lub bez niego. -do opcja jest używana z poleceniem define do zdefiniowania tablicy liczbowej i -DO opcja jest używana z instrukcją define do zdefiniowania tablicy asocjacyjnej w bash. Bez polecenia define tablica liczbowa może być zdefiniowana tylko w bash.

Przykład:

#!/kosz/bash

# Zadeklaruj prostą tablicę numeryczną
arr1=(CodeIgniter Laravel ReactJS)

# Wydrukuj wartość pierwszego elementu $arr1
wyrzucił $ {przyp.1 [0] {

# Zadeklaruj tablicę numeryczną za pomocą polecenia define
ogłosić -do arr2=(HTML CSS JavaScript)

# Wydrukuj wartość drugiego elementu $arr2
wyrzucił ${arr2[1]}

# Zadeklaruj tablicę asocjacyjną za pomocą instrukcji define
ogłosić -DO arr3=( [struktura]=Laravel[CMS]=Wordpress[Biblioteka]=JQuery)

# Wydrukuj trzeci element wartości $arr3
wyrzucił ${arr3[Biblioteka]}

Dostęp do wszystkich elementów tablicy można uzyskać za pomocą dowolnej pętli lub symbolu „*” jako indeksu tablicy.

# 14. Jak można używać instrukcji warunkowych w bash?

Najpopularniejszą instrukcją warunkową w większości języków programowania jest if-elseif-else oświadczenie. Składnia if-elseif-else Instrukcja w bash różni się nieco od innych języków programowania. 'Gdyby' deklarację można zadeklarować na dwa sposoby w skrypcie basha i każdy typ 'Jeśli' blok musi być zamknięty za pomocą 'być' . 'Jeśli' Instrukcja może być zdefiniowana przez nawiasy trzecie lub nawiasy pierwsze, podobnie jak inne języki programowania.

Składnia:
DO.

Jeśli [stan: schorzenie];
następnie
sprawozdania
być

B.

Jeśli [stan: schorzenie];następnie
sprawozdania1
w przeciwnym razie
oświadczenie2
być

C.

Jeśli [stan: schorzenie];następnie
oświadczenie1
Elifa[stan: schorzenie];następnie
oświadczenie2
….
w przeciwnym razie
stwierdzenie n
być

Przykład:

#!/kosz/bash

# Przypisz wartość do $n
n=30
# Sprawdź, czy $n jest większe niż 100 czy nie
Jeśli [ $n -gt 100 ];następnie
wyrzucił '$njest mniej niż 100'
# Sprawdź identyfikator $n większy niż 50 lub nie
Elifa [ $n -gt pięćdziesiąt ];następnie
wyrzucił '$njest mniej niż 50'
w przeciwnym razie
wyrzucił '$njest mniej niż 50'
być

#15. Jak porównać wartości w bashu?

Sześć typów operatorów porównania może być użytych w bash do porównywania wartości. Istnieją dwa sposoby użycia tych operatorów w bash, w zależności od typu danych. Są one wymienione poniżej.

Porównanie ciągów Porównanie liczb całkowitych Opis
== -równe Służy do sprawdzania równości
! = -urodzić się Służy do sprawdzania nierówności
< -lt Jest używany, sprawdź, czy pierwsza wartość jest mniejsza niż druga wartość, czy nie
> -gt Służy do sprawdzania, czy pierwsza wartość jest większa od drugiej wartości, czy nie
<= -ten Służy do sprawdzania, czy pierwsza wartość jest mniejsza lub równa drugiej wartości, czy nie
> = -dawać Służy do sprawdzania, czy pierwsza wartość jest większa lub równa drugiej wartości, czy nie

Przykład:

#!/kosz/bash
# Zainicjuj $n
n=130
lub='parzysty'
# Sprawdź, czy $n jest większe lub równe 100, czy nie używaj „–ge”.
Jeśli [ $n -dawać 100 ];następnie
wyrzucił '$njest większa lub równa 100'
w przeciwnym razie
wyrzucił '$njest mniej niż 100'
być
# Sprawdź, czy $n jest parzyste lub nieparzyste, używając operatora „==”
Jeśli (( =='parzysty' ));następnie
wyrzucił „Liczba jest parzysta”
w przeciwnym razie
wyrzucił „Liczba jest nieparzysta”
być

#16. Która instrukcja warunkowa może być używana jako alternatywa dla instrukcji if-elseif-else w bash?

'Obudowa' oświadczenie może być użyte jako alternatywa tp jeśli-jeżeli-jeśli oświadczenie. Składnia dla 'Obudowa' Instrukcja w skryptach bash różni się od Sprawa przełącznik zestawienie innych języków programowania. 'Obudowa' blok jest zamknięty przez „esac” oświadczenie w bash. Nie ' przerwa „Oświadczenie jest używane wewnątrz” Obudowa ‘ blok do zakończenia z bloku.

Składnia:

Obudowa w
Dopasuj wzór1)polecenia;;
Dopasuj wzór2)polecenia;;
……
Dopasuj wzór n)polecenia;;
esac

Przykład:

#!/kosz/bash
#Zainicjuj zmienną $ticket
bilet=101
# Porównaj wartość $biletu z 23, 101 i 503
Obudowa $bilet w
2. 3)
# Wydrukuj wiadomość, jeśli wartość wynosi 23
wyrzucił „Dostałeś pierwszą nagrodę”;;
101)
# Wydrukuj wiadomość, jeśli wartość wynosi 101
wyrzucił „Masz drugą nagrodę”;;
503)
# Wydrukuj wiadomość, jeśli wartość wynosi 503
wyrzucił „Dostałeś trzecią nagrodę”;;
*)
# Wydrukuj wiadomość, jeśli wartość nie pasuje do 23, 101 i 503
wyrzucił „Przepraszam, spróbuj następnym razem”
Wyjście 0;;
esac

#17. Jakie rodzaje pętli można zastosować w bash?

Skrypt bash obsługuje trzy typy pętli. To są podczas, dla oraz dopóki pętle. Pętle w bash sprawdzają stan na początku pętli. Podczas pętla działa, dopóki warunek nie zostanie spełniony i dopóki pętla działa, dopóki warunek nie pozostanie fałszywy. Istnieją dwa sposoby użycia dla pętla. Jeden jest ogólny dla pętla składająca się z trzech części, a druga to dla w pętla. Zastosowania tych trzech pętli pokazano w poniższym przykładzie.

Przykład:

#!/kosz/bash
# Zainicjuj $n
n=5
# Oblicz kwadrat 5-1 za pomocą pętli while
podczas [ $n -gt 0 ]
robić
sqr= $((n*n))
wyrzucił „Kwadrat”$njest$sqr'
((n--))
Gotowe

# Oblicz kwadrat 5-1 za pomocą pętli for
dla (( i=5; i>0; i--))
robić
sqr= $((i*i))
wyrzucił „Kwadrat”$ijest$sqr'
Gotowe

# Zainicjuj $x
x=5

# Oblicz kwadrat 5-1, używając aż do pętli
dopóki [ $ x -ten 0 ]
robić
sqr= $((x*x))
wyrzucił „Kwadrat”$ xjest$sqr'
((x--))
Gotowe

#18. Jak można deklarować i wywoływać podprogramy w bash?

W basha funkcję lub procedurę nazywa się podprogramem. Deklaracja i wywołanie podprogramu w bash różni się od innych języków. Żaden argument nie może być deklarowany w podprogramach w przeciwieństwie do innych standardowych języków programowania. Ale zmienne lokalne można zdefiniować w podprogramie za pomocą 'lokalny' słowo kluczowe.

Przykład:

#!/kosz/bash
# Zainicjuj zmienne $x i $y, które są globalne
x=10
oraz=35

# Zadeklaruj funkcję
mojaFunkcja() {
# Zadeklaruj zmienną lokalną $x
lokalny x=piętnaście

# Ponownie przypisz zmienną globalną $y
oraz=25

# Oblicz sumę $x i $y
z= $((x + y))

# Wydrukuj sumę zmiennej lokalnej $x i zmiennej globalnej $y
wyrzucił 'Suma$ xoraz$ takrówny$z'
}

# Wywołaj funkcję
mojaFunkcja

# Wydrukuj sumę zmiennych globalnych, $x i $y
wyrzucił 'Suma$ xoraz$ takrówny$z'

#19. Jak wyciąć i wydrukować część danych ciągu w bash?

Bash nie ma wbudowanej funkcji, tak jak inne języki, do wycinania części danych ciągu. Ale przy użyciu rozszerzania parametrów dowolna wartość ciągu może zostać skrócona w bashu. W interpretacji parametrów można zdefiniować trzy części, oddzielając je dwukropkiem, aby wyciąć dowolną część danych ciągu. Tutaj dwie pierwsze części są obowiązkowe, a ostatnia część opcjonalna. Pierwsza część zawiera główną zmienną ciągu, która zostanie użyta do cięcia, druga część to pozycja początkowa, z której ciąg będzie cięty, a trzecia część to długość sznurka tnącego. Pozycja początkowa musi być liczona od 0, a długość musi być liczona od 1 głównego ciągu, aby pobrać wartość cięcia.

Przykład:

#!/kosz/bash
# Zainicjuj wartość ciągu w $string
strunowy=„Język skryptów Pythona”
# Wytnij wartość ciągu z pozycji 7 do końca ciągu
wyrzucił ${string:7}
# Wytnij wartość ciągu 9 znaków z pozycji 7
wyrzucił ${string:7:9}
# Obniż wartość ciągu z 17 do 20
wyrzucił ${string:17:-4}

#20. Wymienić kilka sposobów wykonywania operacji arytmetycznych w basha?

W basha operacje arytmetyczne można wykonywać na wiele sposobów. ‘let’, ‘expr’, ‘bc’ oraz podwójne nawiasy są najczęstszymi sposobami wykonywania operacji arytmetycznych w bash. Zastosowania tych poleceń pokazano w poniższym przykładzie.

Przykład:

#!/kosz/bash
# Obliczanie odejmowania za pomocą wyrażeń i rozwinięcia parametrów
zmienna1= $( wyraż 120-100 )
# wydrukuj wynik
wyrzucił $ zm.1
# Oblicz dodawanie za pomocą polecenia let
pozwolić var2=200+300
# Wydrukuj wynik
wyrzucił $zmienna2
# Oblicz i wydrukuj wartość dzielenia za pomocą „bc”, aby uzyskać wynik
# z wartością ułamkową
wyrzucił 'skala=2; 44/7' | pne
# Oblicz wartość mnożenia używając podwójnych nawiasów
var3= $(( 5*3 ))
# Wydrukuj wynik
wyrzucił $zmienna3

#21. Jak sprawdzić, czy katalog istnieje, czy nie używać bash?

Bash ma wiele poleceń testowych, aby sprawdzić, czy plik lub katalog istnieje, czy nie, oraz typ pliku. '-D' opcja jest używana ze ścieżką katalogu jako instrukcja warunkowa, aby sprawdzić, czy katalog istnieje, czy nie w bash. Jeśli katalog istnieje, zwróci true, w przeciwnym razie zwróci false.

Przykład:

#!/kosz/bash
# Przypisz katalog ze ścieżką w zmiennej $path
ścieżka='/dom/ubuntu/tymczasowa'
# Sprawdź, czy katalog istnieje, czy nie
Jeśli [ -D '$ścieżka' ];następnie
# Wydrukuj wiadomość, jeśli katalog istnieje
wyrzucił „Katalog istnieje”
w przeciwnym razie
# Wydrukuj wiadomość, jeśli katalog nie istnieje
wyrzucił „Katalog nie istnieje”
być

#22. Jak można zakończyć skrypt bash bez wykonywania wszystkich instrukcji?

Za pomocą 'Wyjście' polecenie, skrypt bash może zostać zakończony bez wykonywania wszystkich instrukcji. Poniższy skrypt sprawdzi, czy dany plik istnieje, czy nie. Jeśli plik istnieje, wydrukuje całkowitą liczbę znaków pliku, a jeśli plik nie istnieje, zakończy działanie skryptu wyświetlając komunikat.

Przykład:

#!/kosz/bash

# Zainicjuj nazwę pliku do zmiennej $filename
Nazwa pliku='kurs.txt'

# Sprawdź, czy plik istnieje, czy nie, używając opcji -f
Jeśli [ -F '$nazwa pliku' ];następnie
# Wydrukuj wiadomość, jeśli plik istnieje
wyrzucił '$nazwa plikuistnieje
w przeciwnym razie
# Wydrukuj wiadomość, jeśli plik nie istnieje
wyrzucił '$nazwa plikunie istnieje'
# Zakończ skrypt
Wyjście 1
być

# Policz długość pliku, jeśli plik istnieje
długość=``toaleta -C $nazwa pliku``

# Wydrukuj długość pliku
wyrzucił 'Całkowita liczba znaków -$długość'

#23. Jakie są zastosowania instrukcji break i continue w bash?

przerwa Instrukcja służy do zakończenia pętli bez ukończenia pełnej iteracji na podstawie warunku i kontyntynuj Instrukcja jest używana w pętli, aby pominąć niektóre instrukcje oparte na warunku. Zastosowania przerwa oraz kontyntynuj instrukcje są wyjaśnione w poniższym przykładzie.

Przykład:

#!/kosz/bash
# Zainicjuj zmienną $i na 0, aby rozpocząć pętlę
i=0
# pętla wykona iterację 10 razy
podczas [ $i -ten 10 ]
robić
# Zwiększ wartość $i o 1
((i++))
# Jeśli wartość $i jest równa 8, zakończ pętlę za pomocą instrukcji 'break'
Jeśli [ $i -równe 8 ];następnie
przerwa;
być
# Jeśli wartość $i jest większa niż 6, pomiń ostatnią instrukcję pętli
# za pomocą instrukcji continue
Jeśli [ $i -dawać 6 ];następnie
kontyntynuj;
być
wyrzucił 'bieżąca wartość i =$i'
Gotowe

# Wydrukuj wartość $i po zakończeniu pętli
wyrzucił 'Teraz wartość i =$i'

#24. Jak zrobić plik wykonywalny bash?

Wykonywalne pliki bash można tworzyć za pomocą „chmod” Komenda. Uprawnienia wykonywalne można ustawić za pomocą „+ X” w chmod polecenie z nazwą pliku skryptu. Pliki Bash mogą być wykonywane bez wyraźnego 'grzmotnąć' polecenie po ustawieniu bitu wykonania dla tego pliku.

Przykład:

# Ustaw bit wykonania
$chmod+ x nazwapliku.sh

# Uruchom plik wykonywalny
$./nazwapliku.sh

#25. Wymień kilka opcji używanych do testowania plików

Wiele opcji jest dostępnych w bash do pliku testowego. Niektóre opcje są wymienione poniżej.

Opcja Opis
-F Służy do testowania, czy plik istnieje i jest to zwykły plik.
-I Służy do testowania, czy plik istnieje tylko.
-r Służy do testowania, czy plik istnieje i ma uprawnienia do odczytu.
-w Służy do testowania, czy plik istnieje i musi mieć uprawnienia do zapisu.
-x Służy do testowania, czy plik istnieje i ma uprawnienia do wykonywania.
-D Służy do testowania, czy katalog istnieje.
-TEN Służy do testowania, czy plik istnieje i jest dowiązaniem symbolicznym.
-S Służy do testowania, czy plik istnieje i jest gniazdem.
-b Służy do testowania, czy plik jest urządzeniem blokowym.
-s Służy do sprawdzania, czy plik nie ma zerowych rozmiarów.
-np Służy do sprawdzania, czy zawartość pierwszego pliku jest nowsza niż drugiego pliku. Na przykład plik1 -nt plik2 wskazuje, że plik1 jest nowszy niż plik2.
-ot Służy do sprawdzania, czy zawartość pierwszego pliku jest starsza niż drugi plik. Na przykład, plik1 -ot plik2 wskazuje, że plik1 jest starszy niż plik2.
-ef Służy do sprawdzania, czy dwa twarde łącza odnoszą się do tego samego pliku. Na przykład flink1 -ef flink2 oznacza, że ​​flink1 i flink2 są dowiązaniami twardymi i oba odnoszą się do tego samego pliku.

#26. Co oznacza „bc” i jak można użyć tego polecenia w bash?

Pełna forma „bc” to Kalkulator Bash aby dokładniej wykonywać operacje arytmetyczne w bash. Część ułamkowa jest pomijana, jeśli jakakolwiek operacja arytmetyczna jest wykonywana w bash za pomocą „Ekspr” Komenda. Część ułamkową można zaokrąglić również za pomocą skala wartość z 'pne' Komenda.

Przykład:

#!/kosz/bash
# Oblicz dzielenie bez wartości ułamkowej
wyrzucił '39/7' | pne

# Oblicz dzielenie z pełną wartością ułamkową
wyrzucił '39/7' | pne -ten

# Oblicz podział z trzema cyframi po przecinku
wyrzucił 'skala=3; 39/7' | pne

#27. Jak wydrukować konkretną linię pliku w bash?

Istnieje wiele sposobów na wydrukowanie określonej linii w basha. Jak „awk”, „sed” oraz 'ogon' Polecenia, których można użyć do wydrukowania określonego wiersza pliku w bash, pokazano w poniższym przykładzie.

Przykład:

#!/kosz/bash

# Odczytaj i zapisz pierwszą linię z pliku za pomocą polecenia `awk` ze zmienną NR
linia 1=``awk '{if(NR==1) drukuj $0}'kurs.txt``
# Wydrukuj linię
wyrzucił $linia1

# Odczytaj drugą linię z pliku za pomocą polecenia `sed` z opcją -n
linia 2=``sed -nkurs 2p.txt``
# Wydrukuj linię
wyrzucił $linia2

# Odczytaj ostatnią linię z pliku, używając polecenia `tail` z opcją -n
linia3=``ogon -n 1kurs.txt``
# Wydrukuj plik
wyrzucił $linia3

#28. Co to jest IFS?

IFS jest specjalną zmienną powłoki. Pełna forma IFS jest wewnętrznym separatorem pola,
działa jako ogranicznik oddzielający słowo od wiersza tekstu. Służy głównie do dzielenia ciągu, czytania polecenia, zastępowania tekstu itp.

Przykład:

#!/kosz/bash
# Zadeklaruj ':' jako ogranicznik do dzielenia tekstu
IFS=':'
# Przypisz dane tekstowe za pomocą ':' do $text
tekst=„Czerwony: zielony: niebieski”
# Pętla for odczyta każde słowo po podzieleniu tekstu na podstawie IFS
dlagodzinaw $tekst;robić
# Wydrukuj słowo
wyrzucił $ godzin
Gotowe

#29. Jak sprawdzić długość danych ciągu?

„wyraż”, „wc” oraz „Awk” Polecenia mogą być użyte do określenia długości danych ciągu w bash. „Ekspr” oraz „Awk” użycie poleceń długość opcja, 'Toaleta' używa poleceń '-C' opcja liczenia długości ciągu.

Przykład:

Zastosowania powyższych poleceń pokazano w poniższym skrypcie.

#!/kosz/bash
# Policz długość używając opcji `expr` length
wyrzucił ``wyrażdługość„Lubię PHP”``
# Policz długość za pomocą polecenia `wc`
wyrzucił „Lubię Bash” | toaleta -C
# Policz długość za pomocą polecenia `awk`
wyrzucił „Lubię Pythona” | awk '{długość wydruku}'

#30. Jak równolegle uruchomić wiele skryptów bash?

Wiele skryptów bash może być wykonywanych równolegle za pomocą nohup Komenda. W poniższym przykładzie pokazano, jak wiele plików bash może być wykonywanych równolegle z folderu.

Przykład:

# Przypisz nazwę folderu ze ścieżką w zmiennej $dir, która zawiera
# wiele plików bash
Tobie=„dom/Ubuntu/tymczasowa”

# Pętla for odczyta każdy plik z katalogu i wykona równolegle
dlascenariuszwTobie/ *.CII
robić
nohup grzmotnąć '$skrypt' &
Gotowe

Wniosek:

W tym artykule opisano większość podstawowych pytań do wywiadów dotyczących skryptu bash dla czytelników, którzy chcą rozpocząć karierę jako programista bash.