Как выполнить сценарий оболочки с командой экспорта в crontab

Те 'специальные' наушники или наушники, которые могут использоваться на специализированных устройствах для управления медиаплеерами, объемом и бесшумным режимом обычно, имеют ЧЕТЫРЕ соединения на разъеме, по сравнению с типичными ТРЕМЯ, которые имеет нормальный выходной разъем наушника.

Обычными тремя является Левый канал, Правильный Канал и (распространенная) Земля, в то время как четвертое часто настраивается как сопротивление мультизначения, каждая кнопка, когда нажатые подарки особое сопротивление на четвертом проводе (+ земля), который устройство хранения данных может обнаружить и от этого, определяют, какая функция необходима. Довольно гладкий метод того, чтобы заставлять несколько кнопок отделаться от одного провода, не обращаясь к дорогим генераторам цифрового сигнала и материалу (все упакованные в том небольшом блобе на проводах!).

Четыре кнопки могли бы использовать четыре сопротивления (любой единицы):

volume up:   1 ohm
volume down: 2 ohms
stop:        4 ohms
play:        8 ohms

Если это подозрительно походит на двоичную схему кодирования... это!! (Вы так умны!!) Используя значения так же ratio'd, можно обнаружить 16 различных выводов, даже обработав несколько клавиш, нажатых одновременно. Taa Daa!

Старики могли бы помнить первые iPod, которые имели немного 4connector, разъем рядом с аудио включается, который много устройств включили вместе с их аудио разъемом, который позволил сигналам управления быть отправленными назад и вперед. Это было постепенно сокращено в пользу (по моему скромному мнению, вентилятор!) четвертая система проводной связи... стандартные наушники будут работать как ожидалось, и наушники, настроенные для взаимодействия через интерфейс с четвертым методом проволочного монтажа, приняты также.

Но отвечать на Ваш вопрос (наконец!!)... не, нет никакого 'стандартного' способа добавить функциональность, которую Вы ищете. Гарнитуры Bluetooth были бы Вашим лучшим решением. (мои ПРОХЛАДНЫ!)

-1
31.05.2013, 01:41
3 ответа

Переменные среды могут только быть переданы между процессом и прямым ребенком процесса. Это не может изменить или экспортировать переменные среды в различные деревья процесса. Далее, экспортируемая переменная только доступна для обработки снова, которые являются прямыми потомками текущего процесса, НЕ на том же уровне, как экспорт сделан.

3
28.01.2020, 05:07

На самом деле переменные не совместно используются через сценарии в кроне. Даже если Вы определяете переменную среды как он, говорит в странице справочника, если у Вас есть сценарий, который заменяет ту переменную, которую это действительно не заменит для второго сценария. Однако можно использовать временный файл (можно даже создать его в памяти, если Вы не хотите переписывать файл на диске) использовать между сценариями.

Для примера:

10 * * * * /path/to/script1.sh
20 * * * * /path/to/script2.sh

Содержание script1.sh:

#!/bin/bash
echo "VAR1='VALUE1'" > /dev/shm/cronsharedfile

Содержание script2.sh:

#!/bin/bash
source /dev/shm/cronsharedfile
do_something_with $VAR1

В этом случае второму сценарию присвоит правильное значение script1.sh. Я использовал файл, сохраненный в общей памяти (/dev/shm/cronsharedfile), но можно создать файл на диске (/path/to/whateverfile).

2
28.01.2020, 05:07

Если существует 2 сценария в изображении, то переменная, экспортируемая в первой, была бы видима к следующей. Так, если у Вас есть запись крона как

*/5 * * * * ( test1.sh; test2.sh ) > log.txt

И test1.sh как

#!/bin/sh
export I="10"
echo $

Затем $I было бы видимо в test2.sh.

0
28.01.2020, 05:07
  • 1
    Что? Нет.Без разницы test1.sh делает в его среде, не оказывает влияния на test2.sh. Если бы Вы хотели это, то необходимо было бы записать . test1.sh; . test2.sh. –  Gilles 'SO- stop being evil' 20.02.2013, 22:00
  • 2
    хм. Может быть я попробовал способ, которым Вы показали. Я предполагаю, что определение источника затем действительно отличается что, запуская программу из каталога PATH? –  mtk 21.02.2013, 09:03
  • 3
    Да, конечно определение источника отличается. . test1.sh говорит текущей оболочке анализировать и выполнять команды в test1.sh. test1.sh запускает внешнюю программу test1.sh который может или не может быть сценарием оболочки. –  Gilles 'SO- stop being evil' 21.02.2013, 18:29

Теги

Похожие вопросы