2016-02-03 2 views
0

Я вижу только темы, передающие значения js в сценарий bash. Я хочу, чтобы значения из сценария bash использовались в javascript.read bash output with javascript

Что я хочу:

На основании сигнала-номера, другой значок должен отображаться на веб-странице. Количество сигналов необходимо проверять каждые 5 секунд, чтобы значок мог быть соответствующим образом обновлен. (Как панель качества сигнала на мобильном телефоне).

Что у меня есть:

Файл Баш называется signal.sh, который содержит следующую строку, чтобы выполнить:

/usr/bin/pretty-wifi-info.lua | grep 'Signal' | tr '%' ' ' | awk '{printf "{\"Signal\":"$2"}"}' 

Выход из этого сценария (например):

{"Signal":55} 

Иными словами, JSON-объект. Скрипт Баш находится на моем сервере в /www/signal.sh

То, что я хочу знать:

1) Как я могу использовать JavaScript, чтобы запустить этот Баш скрипт, получаем, что JSON-объект из и используйте номер для вычисления в js на моем веб-сайте (очень похоже на использование setInterval для повторного запуска php-файла, который позволяет json-obj получить информацию, хранящуюся в переменной, и обновлять div с этой новой переменной) ,

2) Как подключить другой значок к определенному значению.

О первом. У меня действительно нет подсказки!

Последний должен - я считаю, что если, else if, else, в зависимости от результата возвращается определенный img_src, который используется для отображения значка в div <> или на < span>, который обновляет каждый 5 секунд.

Надеюсь, кто-то может помочь!

UPDATE

Я билет ответ MichaelWclark как правильный. Я использовал его информацию, чтобы отобразить правильный значок. Я решил не идти по пути node.js, но вместо этого использовал php-файл, который читает скрипт bash.

+3

Это не массив. '{}' в JS - это объект. где это js-код и как он выполняет bash? –

+0

Возможный дубликат: [Node.js Shell Script And Arguments] (http://stackoverflow.com/questions/7464036/node-js-shell-script-and-arguments) – neilsimp1

+0

Извините, я имел в виду объект. Мне стыдно. Я переписал вопрос в своем OP. Надеюсь, что я поняла, чего я пытаюсь достичь. Я проверю ссылку, предоставленную neilsimp1. –

ответ

1

Просто идея .. Я действительно не знаю, что вы пытаетесь достичь, но если я нахожусь на одной странице здесь, это может сработать.

Настройка хрон задание для запуска каждые х минут или секунд с помощью следующей команды:

/usr/bin/pretty-wifi-info.lua | grep 'Signal' | tr '%' ' ' | awk '{printf "{\"Signal\":"$2"}"}' > /home/username/webFolder/signal.json 

в вашем JavaScript сделать что-то вроде:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-beta1/jquery.min.js"></script> 
<script type="text/javacript"> 
var src = "http://www.myImage.com/somepicture.jpg"; 
$.getJSON("signal.json", function(json) { 

    if(json.signal == 53){ 
    src = "http://www.myImage.com/signal53.jpg"; 
    } else if (json.signal == 54) { 
    src = "localImageSignal54.jpg"; 
    } 
    $("#img").innerHTML= "<img src='"+src+"' />"; 
}); 
</script> 
<div id="img"></div> 

Это не тестировался, но, надеюсь, получите ты начал. По сути, он читает json-файл локально, а затем на основе атрибута сигнала json-объекта он устанавливает источник изображения. Когда это будет сделано, это добавит соответствующее изображение в DOM.