github.com/e154/smart-home@v0.17.2-0.20240311175135-e530a6e5cd45/doc/content/ru/docs/javascript/execute.md (about)

     1  
     2  ---
     3  title: "Выполнение системных команд"
     4  linkTitle: "execute"
     5  date: 2021-11-19
     6  description: >
     7  
     8  ---
     9  
    10  Система в проекте **Smart Home** предоставляет возможность запуска произвольных файлов и скриптов синхронно и асинхронно.
    11  
    12  {{< alert color="success" >}}Функция доступна в любом скрипте системы.{{< /alert >}}
    13  
    14  Для этого доступны следующие методы:
    15  
    16  1. `ExecuteSync(file, args)`: Этот метод позволяет запускать файлы и скрипты синхронно. Вы передаете имя файла или путь к скрипту в аргументе `file`, а также необходимые аргументы в виде объекта `args`. Пример использования:
    17  
    18      ```javascript
    19      const file = 'script.js';
    20      const args = { param1: 'value1', param2: 'value2' };
    21      
    22      ExecuteSync(file, args);
    23      ```
    24  
    25  2. `ExecuteAsync(file, args)`: Данный метод позволяет запускать файлы и скрипты асинхронно. Аргументы `file` и `args`имеют такую же структуру, как и в методе `ExecuteSync`. Пример использования:
    26  
    27      ```javascript
    28      const file = 'script.js';
    29      const args = { param1: 'value1', param2: 'value2' };
    30      
    31      ExecuteAsync(file, args);
    32      ```
    33  
    34  Оба метода `ExecuteSync` и `ExecuteAsync` предоставляют возможность запуска произвольных файлов и скриптов в вашем проекте 
    35  **Smart Home**. Синхронный режим означает, что выполнение кода будет блокировать последующие операции до завершения скрипта,
    36  в то время как асинхронный режим позволяет продолжить выполнение других операций без ожидания завершения скрипта.
    37  Вы можете использовать эти методы для интеграции с другими системами, выполнения пользовательских скриптов или запуска 
    38  внешних приложений в вашем проекте **Smart Home**.
    39  
    40  ----------------
    41  
    42  ### пример кода
    43  
    44  ```coffeescript
    45  # ExecuteSync
    46  # ##################################
    47  "use strict";
    48  
    49  r = ExecuteSync "data/scripts/ping.sh", "google.com"
    50  if r.out == 'ok'
    51      print "site is available ^^"
    52  ```
    53  
    54  ping.sh
    55  ```bash
    56  #!/usr/bin/env bash
    57  
    58  ping -c1 $1 > /dev/null 2> /dev/null; [[ $? -eq 0 ]] && echo ok || echo "err"
    59  ```