Вы можете запустить его с помощью сценария bash, который в основном «while (1) {gnome-do}», гарантируя, что при сбое gnome-do он снова запускается. Пока gnome-do запускается синхронно, он должен работать нормально. даже если система попадает в состояние, в котором она не может быть успешно запущена, воздействие будет небольшим. Если вы хотите убедиться, что даже это не проблема, вставьте команду, используя zenity. Это сообщит вам, что возникла проблема, и вам нужно нажать Enter, чтобы снова запустить gnome-do.
создать сценарий со следующим и запустить его из приложения «Запуск приложений», найденного в системе Меню настроек.
while true
do
gnome-do
zenity --info --text="gnome-do crashed ... press enter to restart"
done
Из вашего примера:
$ sed -nr '/0000/N;N; s/.*GPGGA,([^,]+).*/\1/p' file | sed -n '1p;$p'
161212.2
161213.8
И преобразовать в секундах, которые я вам предоставляю ...
Из вашего примера:
$ sed -nr '/0000/N;N; s/.*GPGGA,([^,]+).*/\1/p' file | sed -n '1p;$p'
161212.2
161213.8
И преобразовать в секундах, которые я вам предоставляю ...
Из вашего примера:
$ sed -nr '/0000/N;N; s/.*GPGGA,([^,]+).*/\1/p' file | sed -n '1p;$p'
161212.2
161213.8
И преобразовать в секундах, которые я вам предоставляю ...
Я бы использовал awk для чего-то вроде этого.
Идея заключалась бы в разделении записей (строк) на поля, разделенные запятыми, а затем:
if первое поле заканчивается на $GPVTG, а восьмое поле начинается с 0000, а затем устанавливает булевский флаг, указывающий, что транспортное средство остановлено, когда первое поле заканчивается на $GPGGA, и транспортное средство остановлено, сохраняя значение расстояния от второе поле в конце, напечатайте первые и последние значения расстоянияИтак
#!/usr/bin/awk -f
function printsecs(s) {
print substr(s,5) + 60 * (substr(s,3,2) + 60 * substr(s,1,2));
}
BEGIN {FS=","}
$1 ~ /\$GPVTG$/ && $8 ~ /^0000/ {
stopped = 1;
}
$1 ~ /\$GPGGA$/ && stopped {
t[++n] = $2;
stopped = 0;
}
END {
printsecs(t[1]); printsecs(t[n]);
}
Я бы использовал awk для чего-то вроде этого.
Идея заключалась бы в разделении записей (строк) на поля, разделенные запятыми, а затем:
if первое поле заканчивается на $GPVTG, а восьмое поле начинается с 0000, а затем устанавливает булевский флаг, указывающий, что транспортное средство остановлено, когда первое поле заканчивается на $GPGGA, и транспортное средство остановлено, сохраняя значение расстояния от второе поле в конце, напечатайте первые и последние значения расстоянияИтак
#!/usr/bin/awk -f
function printsecs(s) {
print substr(s,5) + 60 * (substr(s,3,2) + 60 * substr(s,1,2));
}
BEGIN {FS=","}
$1 ~ /\$GPVTG$/ && $8 ~ /^0000/ {
stopped = 1;
}
$1 ~ /\$GPGGA$/ && stopped {
t[++n] = $2;
stopped = 0;
}
END {
printsecs(t[1]); printsecs(t[n]);
}
Я бы использовал awk для чего-то вроде этого.
Идея заключалась бы в разделении записей (строк) на поля, разделенные запятыми, а затем:
if первое поле заканчивается на $GPVTG, а восьмое поле начинается с 0000, а затем устанавливает булевский флаг, указывающий, что транспортное средство остановлено, когда первое поле заканчивается на $GPGGA, и транспортное средство остановлено, сохраняя значение расстояния от второе поле в конце, напечатайте первые и последние значения расстоянияИтак
#!/usr/bin/awk -f
function printsecs(s) {
print substr(s,5) + 60 * (substr(s,3,2) + 60 * substr(s,1,2));
}
BEGIN {FS=","}
$1 ~ /\$GPVTG$/ && $8 ~ /^0000/ {
stopped = 1;
}
$1 ~ /\$GPGGA$/ && stopped {
t[++n] = $2;
stopped = 0;
}
END {
printsecs(t[1]); printsecs(t[n]);
}