Обнаружить при выполнении в виртуальном терминале?

Одна вещь достойная рассмотрения состоит в том, что FreeBSD в настоящее время использует GCC 4.2.1, как отмечено в ire_and_curses, отвечают таким образом, что сравнения производительности не имеют 4,5, или даже 4.6 не действительно относятся к проекту. Поэтому вопросы, которые необходимо задавать:

  1. Каково увеличение производительности нового Лязга по сравнению с более старым GCC, который использует проект?

  2. Как делают те же двоичные файлы, скомпилированные в GCC 4.2.1, выдерживают сравнение с новым Лязгом?

Из-за перемещения GCC к GPL v3 FreeBSD был вынужден остаться использовать GCC 4.2.1 (GPL v2), который был выпущенным путем назад в 2007 и теперь значительно устарел.

Если Лязг отстает от текущего GCC, но является все еще световыми годами перед реализованным GCC в проекте затем, их решение развиться хорошо гарантировано и действительно вдохновлено.

12
23.05.2017, 15:39
2 ответа

Можно использовать tty для получения названия текущего виртуального терминала затем протестируйте против него с a case оператор:

#!/bin/sh

case $(tty) in /dev/tty[0-9]*)
    vlock ;;
esac
14
27.01.2020, 19:55
  • 1
    Еще лучше, вместо того, чтобы принять все терминальные оболочки входа в систему ttys. –  kiri 17.10.2013, 14:38
  • 2
    Никакая потребность исключить X: если сценарий работает в эмуляторе терминала под X, tty покажет псевдотерминал эмулятора терминала, не физический терминал, который X работает. –  Gilles 'SO- stop being evil' 18.10.2013, 00:54

Обычно достаточно просто протестировать STDIN (FD0):

[ -t 0 ] && echo "TTY available" || echo "No TTY available"
5
27.01.2020, 19:55
  • 1
    OK, потому что .bash_profile назван на оболочках входа в систему, и нормальный вход в систему GUI не имеет терминала, таким образом, единственная терминальная оболочка входа в систему должна быть tty. Хорошая находка –  kiri 17.10.2013, 14:07
  • 2
    Если бы этот отрывок был включен в больший сценарий, которому перенаправили его stdin из файла, то он сообщил бы, что никакой TTY не доступен даже если выполненный от VT. –  Joseph R. 17.10.2013, 14:59
  • 3
    @JosephR. Значение часто с cron или at задания для предотвращения отказов, когда сценарии принимают интерактивный вход. –  JRFerguson 17.10.2013, 15:34

Теги

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