Fedora 15 использует systemd. Сначала удостоверьтесь, что Вы выполняете 'графическую' цель путем проверки этого /etc/systemd/system/default.target
символьная ссылка на /lib/systemd/system/graphical.target
, который является эквивалентом runlevel 5 (и нет multi-user.target
, который является эквивалентом runlevel 3).
Затем, удостоверьтесь, что 'prefdm' услуга работает. Проверьте вывод systemctl status prefdm.service
. это должно показать, что загрузилось и активный. Если Вы не были в графической цели, это, вероятно, не будет.
Теперь, если у Вас уже был он в графической цели, возможно, что X не запускается из-за некоторой ошибки. Проверьте файлы журнала в/var/log/gdm, посмотрите на файлы с меткой времени прошлого раза, когда Вы загрузились, чтобы видеть, было ли, возможно, что-то повреждено.
Вам нужно пространство между [[
и $2
.
Для удара [[
не синтаксис, это - встроенная команда (или ключевое слово, чтобы быть точным). Bash выполнится [[
со всеми его параметрами, включая закрытие ]]
. Когда у Вас нет пространства между [[
и $2
удар не будет видеть ключевого слова [[
, вместо этого это будет видеть эту вещь: [[-b
(после того, как расширение $2
кому: -b
). Bash затем попытается выполнить строку [[-b
как команда и сбой. Посмотрите help [[
для получения дополнительной информации.
По той же причине Вам также нужно пространство перед закрытием ]]
.
Вот Ваш исправленный код:
git() {
if [[ $1 == 'checkout' ]] && [[ $2 == '-b' ]];
then echo 'yep!';
fi;
command git "$@";
}
См. также ловушки удара и удар FAQ. IMO лучший способ изучить удар, пишущий сценарий... или лучший способ учиться не делать слишком много сценариев удара.
Поскольку у Вас нет пространства между [[
и $2
, это анализируется неправильно (как [[
непосредственно сопровождаемый расширением $2
). Вам нужен пробел между аргументами [[
:
[[ $2 == -b ]]