startx приводит к пустому экрану

Использовать type commandname. Это возвращает true если commandname что-либо исполняемый файл: псевдоним, функция, встроенная или внешняя команда (искавший в $PATH). С другой стороны, используйте command commandname который возвращает true если commandname встроенная или внешняя команда (искавший в $PATH).

exists () {
  type "$1" >/dev/null 2>/dev/null
}

Существует несколько sh вариантов (определенно предPOSIX; я знаю о /bin/sh под OSF1 ≤3.x и некоторыми версиями оболочки Almquist, найденной в ранних версиях NetBSD и нескольких дистрибутивах Linux 20-го века), где type всегда возвраты 0 или не существуют. Я не думаю никакие системы, поставленные с ними это тысячелетие. Если Вы когда-либо встречаетесь с ними, вот функция, которую можно использовать для поиска в $PATH вручную:

exists () { (
    IFS=:
    for d in $PATH; do
      if test -x "$d/$1"; then return 0; fi
    done
    return 1
) }

Эта функция обычно полезна, если Вы хотите исключить созданный-ins и функции и искать имя в $PATH. Большинство оболочек имеет встроенное для этого, command -v, хотя это - относительно недавнее дополнение к POSIX (все еще дополнительный с POSIX:2004). Это - в основном благоприятная для программиста версия type: это печатает полный путь для исполняемого файла в $PATH, пустое название встроенного или функции и определения псевдонима для псевдонима.

exists_in_path () {
  case $(command -v -- "$1") in
    /*) return 0;;
    alias\ *) return 1;; # alias
    *) return 1;; # built-in or function
  esac
}

Ksh, удар и zsh также имеют type -p искать только исполняемые файлы в $PATH. Обратите внимание на это в ударе, статусе возврата type -p foo 0 если foo встроенное или функция; если Вы хотите протестировать на исполняемый файл в $PATH, необходимо проверить, что вывод не пуст. type -p не находится в POSIX; например, пепел Debian (который является /bin/sh на Ubuntu), не имеет его.

5
04.02.2011, 20:31
1 ответ

Это на самом деле нормально, если у Вас нет a xinitrc с командой для запуска менеджера окон (или любое приложение для GUI). Можно также сказать startx, что это должно выполнить непосредственно из командной строки:

startx `which xterm`

запустит сессию Xorg с xterm окном. можно выполнить материал от него, если Вы хотите :) Но лучшая установка и использование менеджер окон.

4
27.01.2020, 20:41

Теги

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