Как создать GLib.TimeVal из отметки времени?

Что сказал wjandrea, это правильно, что вы можете захватить прочитанный stderr. К сожалению, попытка чтения с помощью stderr не сохраняет переменную key, поэтому вывод для echo $key будет пустым. Однако в скрипте он будет сохранять переменную, потому что сама строка чтения не перенаправляется с stderr на stdout 2>&1 в сценарии. Вместо этого скрипт получает, чтобы сохранить переменную, потому что теперь она установлена ​​до перенаправления. Я думаю, чтобы было проще, используйте вместо этого строки echo. Я добавил все примеры.

Пример вашего скрипта:

:~$ cat test1.sh 
#!/bin/bash
read -p "type a key and Enter: " key
echo "the key was $key"

:~$ ./test1.sh | tee junk
type a key and Enter: G
the key was G

:~$ cat junk
the key was G

С перенаправлением 2>&1:

:~$ ./test1.sh 2>&1 | tee junk
type a key and Enter: G
the key was G

:~$ cat junk
type a key and Enter: the key was G

С линией echo:

:~$ cat test.sh 
#!/bin/bash
echo -n "Type a key and press Enter: "
read key
echo "the key was $key"

echo строка с командой tee:

:~$ ./test.sh | tee junk
Type a key and press Enter: X
the key was X

:~$ cat junk
Type a key and press Enter: the key was X

Пример сценария no:

С stderr:

:~$ read -p "Type a key and press Enter: " key 2>&1 |tee junk; echo "The key was $key" | tee -a junk
Type a key and press Enter: F
The key was 

:~$ cat junk
Type a key and press Enter: The key was 

Вместо echo и нескольких команд tee:

:~$ echo -n "Type a key and press Enter: " | tee junk; read key; echo "The key was $key" | tee -a junk
Type a key and press Enter: F
The key was F

:~$ cat junk
Type a key and press Enter: The key was F

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

1
задан 3 July 2012 в 13:27

7 ответов

Это то, что я придумал, может быть, это поможет:

>>> from gi.repository import GLib, Indicate
>>> timestamp = '1340830988768'
>>> indicator = Indicate.Indicator()
>>> timeval = GLib.TimeVal()
>>> timeval.tv_sec = int(timestamp[:-3])
>>> indicator.set_property_time("time", timeval)
>>>

Обратите внимание на этот раздел в справочном руководстве по GLib:

< blockquote>

GLib пытается объединиться вокруг использования 64-битных целых чисел для представления времени с микросекундной точностью. Таким образом, этот тип будет удален из будущей версии GLib.

1
ответ дан 25 July 2018 в 18:13

Это то, что я придумал, может быть, это поможет:

>>> from gi.repository import GLib, Indicate
>>> timestamp = '1340830988768'
>>> indicator = Indicate.Indicator()
>>> timeval = GLib.TimeVal()
>>> timeval.tv_sec = int(timestamp[:-3])
>>> indicator.set_property_time("time", timeval)
>>>

Обратите внимание на этот раздел в справочном руководстве по GLib:

< blockquote>

GLib пытается объединиться вокруг использования 64-битных целых чисел для представления времени с микросекундной точностью. Таким образом, этот тип будет удален из будущей версии GLib.

1
ответ дан 2 August 2018 в 00:27

Это то, что я придумал, может быть, это поможет:

>>> from gi.repository import GLib, Indicate
>>> timestamp = '1340830988768'
>>> indicator = Indicate.Indicator()
>>> timeval = GLib.TimeVal()
>>> timeval.tv_sec = int(timestamp[:-3])
>>> indicator.set_property_time("time", timeval)
>>>

Обратите внимание на этот раздел в справочном руководстве по GLib:

< blockquote>

GLib пытается объединиться вокруг использования 64-битных целых чисел для представления времени с микросекундной точностью. Таким образом, этот тип будет удален из будущей версии GLib.

1
ответ дан 4 August 2018 в 15:55

Это то, что я придумал, может быть, это поможет:

>>> from gi.repository import GLib, Indicate
>>> timestamp = '1340830988768'
>>> indicator = Indicate.Indicator()
>>> timeval = GLib.TimeVal()
>>> timeval.tv_sec = int(timestamp[:-3])
>>> indicator.set_property_time("time", timeval)
>>>

Обратите внимание на этот раздел в справочном руководстве по GLib:

< blockquote>

GLib пытается объединиться вокруг использования 64-битных целых чисел для представления времени с микросекундной точностью. Таким образом, этот тип будет удален из будущей версии GLib.

1
ответ дан 6 August 2018 в 00:34

Это то, что я придумал, может быть, это поможет:

>>> from gi.repository import GLib, Indicate
>>> timestamp = '1340830988768'
>>> indicator = Indicate.Indicator()
>>> timeval = GLib.TimeVal()
>>> timeval.tv_sec = int(timestamp[:-3])
>>> indicator.set_property_time("time", timeval)
>>>

Обратите внимание на этот раздел в справочном руководстве по GLib:

< blockquote>

GLib пытается объединиться вокруг использования 64-битных целых чисел для представления времени с микросекундной точностью. Таким образом, этот тип будет удален из будущей версии GLib.

1
ответ дан 7 August 2018 в 17:59

Это то, что я придумал, может быть, это поможет:

>>> from gi.repository import GLib, Indicate
>>> timestamp = '1340830988768'
>>> indicator = Indicate.Indicator()
>>> timeval = GLib.TimeVal()
>>> timeval.tv_sec = int(timestamp[:-3])
>>> indicator.set_property_time("time", timeval)
>>>

Обратите внимание на этот раздел в справочном руководстве по GLib:

< blockquote>

GLib пытается объединиться вокруг использования 64-битных целых чисел для представления времени с микросекундной точностью. Таким образом, этот тип будет удален из будущей версии GLib.

1
ответ дан 10 August 2018 в 06:48

Это то, что я придумал, возможно, это поможет:

>>> from gi.repository import GLib, Indicate
>>> timestamp = '1340830988768'
>>> indicator = Indicate.Indicator()
>>> timeval = GLib.TimeVal()
>>> timeval.tv_sec = int(timestamp[:-3])
>>> indicator.set_property_time("time", timeval)
>>>

Обратите внимание на этот раздел в справочном руководстве по GLib:

< blockquote>

GLib пытается объединиться вокруг использования 64-битных целых чисел для представления времени с микросекундной точностью. Таким образом, этот тип будет удален из будущей версии GLib.

1
ответ дан 15 August 2018 в 18:43
  • 1
    Спасибо! Я думаю, что это то, что мне нужно, но я не могу подтвердить, пока не исправлю некоторые другие проблемы с моим кодом. – 8128 3 July 2012 в 17:43

Другие вопросы по тегам:

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