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 ```