Открытие Chromium из сценария bash с помощью crontab

sed -e 's/online=YES/online=NO/' -e t -e 's/online=NO/online=YES/'

Команда tв sedперейдет к заданной метке (или к концу сценария sed, если метка не указана ), если предыдущая команда sпроизвела замену с момента последнего чтения входной строки.

В этом случае будет пропущена вторая замена, если была выполнена первая замена.


В случае, если в строке может быть несколько online=YESили online=NO, используйте

sed -e 's/online=YES/online=MAYBE/g' \
    -e 's/online=NO/online=YES/g' \
    -e 's/online=MAYBE/online=NO/g' 

, где строка MAYBEиначе не связана с шаблоном online=. Это было бы похоже на использование временной переменной для замены значений двух переменных.

Тестирование:

$ echo "online=YES online=YES online=NO online=YES" | sed -e 's/online=YES/online=MAYBE/g' -e 's/online=NO/online=YES/g' -e 's/online=MAYBE/online=NO/g'
online=NO online=NO online=YES online=NO

Причина, по которой команда nне совсем работает вместо команды tв первом примере, заключается в том, что она считывает следующую строку ввода на полпути сценария и запускает вторую половину сценария. на этой линии:

$ ( echo "online=YES"; echo "online=YES" ) | sed -e 's/online=YES/online=NO/' -e n -e 's/online=NO/online=YES/'
online=NO
online=YES

Вы получите одинаковый вывод для двух NOстрок.

0
11.12.2019, 19:45
1 ответ

Решение состояло в том, чтобы добавить export DISPLAY=:0в скрипт:

#!/bin/bash
if [ $1 == 'off' ]
then
echo "Chromium OFF"
pkill -x -15 chromium
else
echo "Chromium ON"
export DISPLAY=:0
chromium http://localhost/shopCaseCodeigniter/selectSlideshowForScreen/1 --kiosk --password-store=basic > /home/miguel/Scripts/logs/chromium.log 2>&1
fi
0
28.01.2020, 03:01

Теги

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