Устранение неполадок сценария для моего RPI для переключения дисплеев - PullRequest
0 голосов
/ 20 сентября 2018

Итак, к моему gpio подключен ЖК-дисплей Quimat.

включает в себя скрипт, который запускается для переключения на дисплей (LCD35-шоу), и другой для переключения обратно на порт HDMI (LCD-hdmi).Это вызывает перезагрузку, когда это делается, поэтому любые переменные должны произойти до этого.

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

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

То, что я до сих пор делал, это:

Создан текстовый файл state.txt для хранения переменной, указывающей, в каком режиме находится устройство (HDMI или LCD))

Моя попытка состояла в том, чтобы прочитать переменную, а затем использовать оператор if then, чтобы определить, какой файл запускать, изменить переменную и запустить файл.

Это код, с которым я закончил.

!/bin/bash
read var < state.txt
if var == HDMI
then 
    echo LCD > state.txt
    cd LCD-show/
    sudo ./LCD35-show
else
    echo HDMI > state.txt
        cd LCD-show/
    sudo ./LCD-hdmi
fi

Я надеюсь, что кто-нибудь покажет мне, что я сделал не так, и надеюсь, объяснить, что я пропустил в процессе.

1 Ответ

0 голосов
/ 20 сентября 2018

Будьте внимательны при сравнении сценариев bash.Оберните строки в кавычки (или какой-либо другой метод), чтобы не было синтаксической ошибки, когда строковые переменные оцениваются как пусто .Вы можете использовать == для сравнения строк в bash, но = работает в bash и sh.

#! /bin/bash
EXE=`basename "$0"`
LCD_DIR="LCD-show"   
STATE_FILE="state.txt"

if [ ! -d "$LCD_DIR" ]; then
    echo "$EXE: $LCD_DIR does not exist"
    exit 1
fi

read var < state.txt  
if [ "$var" = "HDMI" ]; then
    echo LCD > "$STATE_FILE"
    cd "$LCD_DIR"
    sudo ./LCD35-show
else
    echo HDMI > "$STATE_FILE"
    cd "$LCD_DIR"
    sudo ./LCD-hdmi
fi

Разница между хорошим и хорошим сценарием заключается в обработке ошибок,Что происходит, когда dir LCD-шоу не существует?(по любой причине).

...