Я хотел запустить это при запуске, потому что мне нравится играть с несколькими DE. Когда я запускаю этот скрипт из файла, он не запускает Docky.
Я уже изменил права доступа к файлу, чтобы он мог запускаться как программа.
Когда я введу именно это в gnome-терминал, он запустит Docky, если я войду в gnome-classic. Я хотел запустить этот скрипт при запуске, чтобы Docky не запускался в Unity:
if [ $DESKTOP_SESSION == "gnome-classic" ] ; then docky ; fi
Есть предложения? Я попытался написать что-то вроде Firefox в том же файле, и он запустит Firefox. Поэтому, когда я запускаю следующий скрипт из файла ...
cd /home/user/Desktop
mkdir ITRAN
if [ $DESKTOP_SESSION == "gnome-classic" ] ; then docky ; fi
Он создает новый файл на моем рабочем столе, но не запускает Docky, даже если я просто копирую тот же код в окно терминала, которое запускается ...
С помощью гейры я изменил сценарий. Тем не менее, теперь Docky запускается независимо от того, какой DE я запускаю, Unity или gnome-classic.
#!/bin/sh
if [ $DESKTOP_SESSION = "gnome-classic" ]; then
docky
fi
Я также пытался
$DESKTOP_SESSION = "gnome-classic"
$DESKTOP_SESSION = gnome-classic
"$DESKTOP_SESSION" = gnome-classic
"$DESKTOP_SESSION" = "gnome-classic"
исключить возможность того, что я ошибся в этой части.
Команда [
не имеет оператора ==
. Баш позволяет это, но черта будет съеживаться. Правильный оператор для использования - =
. У сценария, который вы разместили в своем вопросе, нет шебанга, поэтому он, скорее всего, будет запущен sh
. Итак:
#!/bin/sh
mkdir -p "$HOME/Desktop/ITRAN"
if [ "$DESKTOP_SESSION" = gnome-classic ]; then
docky
fi
В любом случае, если произойдет сбой, вы, скорее всего, найдете сообщения об ошибках в ~/.xsession-errors
, так что поищите подсказки.
Убедитесь, что ваш скрипт начинается с:
#!/bin/sh
Кроме того, убедитесь, что ваш скрипт исполняемый:
chmod a+x path/to/your/script.sh