# Hello.sh, Bash, Konsola w aplikacji - interpreter poleceń na bramce

**URL:** <https://ai-speaker.discourse.group/t/hello-sh-bash-konsola-w-aplikacji-interpreter-polecen-na-bramce/404>\
**Category:** Programowanie\
**Created:** [24 Kwiecień 2020 13:35 UTC](https://ai-speaker.discourse.group/t/hello-sh-bash-konsola-w-aplikacji-interpreter-polecen-na-bramce/404 "2020-04-24T13:35:00Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Autor:** ![araczkowski](https://yyz2.discourse-cdn.com/free1/user_avatar/ai-speaker.discourse.group/araczkowski/32/6_2.png) [@araczkowski](https://ai-speaker.discourse.group/u/araczkowski)\
**Data wpisu:** [24 Kwiecień 2020 13:35 UTC](https://ai-speaker.discourse.group/t/hello-sh-bash-konsola-w-aplikacji-interpreter-polecen-na-bramce/404/1 "2020-04-24T13:35:01Z")

</div>

## Bash, Konsola w aplikacji - interpreter poleceń na bramce

Opiszę, jak dodać skrypt powłoki bash, a następnie uruchomić go z Asystenta domowego.  
Celem tego opisu jest pokazanie, w jaki sposób można dodać na bramce własny skrypt, a następnie wykonać go z automatyzacji.

> W ten sposób można zrobić własny backup co określony czas, czy wywołać co tylko chcemy z innych naszych programów - generalnie wszystko, czego nam brakuje na bramce, a bardzo chcemy to mieć.

### Konsola

Konsola dostępna w aplikacji (tylko w lokalnej sieci) może służyć do wykonywania poleceń z klawiatury (lub innych standardowych urządzeń wejściowych w systemie), lub z pliku (skryptu).  
Sama powłoka nie jest częścią jądra systemu, ale używa jądra systemu do wykonywania programów, tworzenia plików itp.

 ![image](https://global.discourse-cdn.com/free1/uploads/ai_speaker/original/2X/9/96939c93b53b43a6ed7698469d0b41ba772f05c5.png)

Nasza standardowa konsola to powłoka bash (Bash shell):

> **[Bash - GNU Project - Free Software Foundation](https://www.gnu.org/software/bash/)**

## Dodanie skryptu bash

### Tworzymy folder z programami (jeżeli jeszcze go nie mamy)

```auto
cd AIS/
mkdir programs
cd programs

```

### Dodajemy nowy skrypt z naszym pierwszym kodem

```auto
cd ~/AIS/programs
nano hello.sh

```

Kod programu:

```auto
echo "Hello Jolka!"

```

 ![image](https://global.discourse-cdn.com/free1/uploads/ai_speaker/original/2X/c/cf4ddd407bb7a9bc491cf1815ed756e391208b5f.png)

### Uruchamiamy skrypt

żeby uruchomić skrypt nadajemu uprawnienia komendą:

```auto
chmod +x hello.sh

```

### Uruchamiamy skrypt w konsoli

```auto
./hello.sh 

```

 ![image](https://global.discourse-cdn.com/free1/uploads/ai_speaker/original/2X/1/14a9c915fb4cfceae8e4f7555422098af1440e4e.png)

## Wywołanie API asystenta ze skryptu

W dokumentacji opisujemy jak działa API systemu:

> **[API systemu | AI-Speaker](http://www.ai-speaker.com/docs/ais_bramka_api_index/)**
>
> Wprowadzenie

Jest to API REST full, więc możemy wywołać je za pomocą programu **curl** dostępnego na bramce.

### Wywołanie API z konsoli

Ta komedna, wywołana z konsoli w aplikacji, spowoduje wywołanie API text\_to\_speech - przeczytanie tekstu przez Jolkę:

```auto
curl -v --header "Content-Type: application/json" \
--request POST \
--data '{"text":"Hejka, tu Jolka"}' \
http://localhost:8122/text_to_speech

```

 ![image](https://global.discourse-cdn.com/free1/uploads/ai_speaker/original/2X/b/b6a7832bdf8c159ff18c9234afdeaf189f465a4b.png)

### Wywołanie API ze skryptu

Podobną komendę możemy dodać do naszego skryptu bash:

1. Tworzymy nowy skrypt

```auto
nano hej.sh

```

1. Dodajemy w skrypcie wywołanie API z curl

```auto
# wywołanie mówienia skryptem

curl -v --header "Content-Type: application/json" \
--request POST \
--data '{"text":"Hejka, tu Jolka"}' \
http://localhost:8122/text_to_speech

```

 ![image](https://global.discourse-cdn.com/free1/uploads/ai_speaker/original/2X/4/430814da38545a28c0b72d9df889b99297593af0.png)

1. Dodajemy uprawnienia do uruchamiania skryptu

```auto
chmod +x hej.sh

```

1. Uruchamiamy skrypt

```auto
./hej.sh 

```

 ![image](https://global.discourse-cdn.com/free1/uploads/ai_speaker/original/2X/e/e0f91b932fc85de7e117abfe45db0c3d8aee0c0b.png)

### Wywołanie skryptu z Asystenta domowego

Każdy skrypt możemy uruchomić z poziomu Asystenta domowego, np. z automatyzacji.  
Poniższy przykład pokazuje jak uruchomić nasz skrypt hej.sh

1. Lokalizacja pliku ze skryptem

w konsoli przechodzimy do folderu z programami i wpisujemy komendę `pwd`  
kopiujemy ścieżkę

 ![image](https://global.discourse-cdn.com/free1/uploads/ai_speaker/original/2X/6/6f5693b0ebdfd35e9bb8c95803af044e24fad598.png)

1. Testowe wywołanie usługi - uruchomienie skryptu

w narzędziach deweloperskich w aplikacji wybieramy usługę `ais_shell_command.execute_command`  
i jako komedę do uruchomienia wpisujemy pełną ścieżkę do skryptu hej.sh

```auto
/data/data/pl.sviete.dom/files/home/AIS/programs/hej.sh

```

 ![image](https://global.discourse-cdn.com/free1/uploads/ai_speaker/original/2X/2/266ed3f33b46ffa87fcb6176535f71ba7437c81b.png)

Wywołujemy usługę i słyszymy “Hejka tu Jolka” 🙂

Oczywiście w ten sposób możemy uruchomić dowolny skrypt w Bash, który uruchomi program (w C, Python czy Node.js) a dodatkowo głosowo poinformuje nas o tym, co robi.

1. Wywołanie usługi z automatyzacji  
a) Dodajemy nową automatyzacje - uruchomienie podczas startu systemu  
 ![image](https://global.discourse-cdn.com/free1/uploads/ai_speaker/original/2X/a/a45ce19e02a6ae1355c61f65e08f6d09b376cca2.png)  
b) Dodajemy akcje na starcie - wywołanie naszego skryptu bash  
 ![image](https://global.discourse-cdn.com/free1/uploads/ai_speaker/original/2X/7/7db52a52de4700f30d043178737d1cce45c07f6e.png)  
c) zapisujemy i testujemy  
 ![image](https://global.discourse-cdn.com/free1/uploads/ai_speaker/original/2X/b/b14148311e57fc530ee33649e100b2265fe981ee.png)
