Скрипт запускается, когда я набираю его в терминале, но не когда я запускаю его из файла .sh

Я хотел запустить это при запуске, потому что мне нравится играть с несколькими 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"

исключить возможность того, что я ошибся в этой части.

1
задан 28 June 2012 в 03:14

2 ответа

Команда [ не имеет оператора ==. Баш позволяет это, но черта будет съеживаться. Правильный оператор для использования - =. У сценария, который вы разместили в своем вопросе, нет шебанга, поэтому он, скорее всего, будет запущен sh. Итак:

#!/bin/sh
mkdir -p "$HOME/Desktop/ITRAN"
if [ "$DESKTOP_SESSION" = gnome-classic ]; then
    docky
fi

В любом случае, если произойдет сбой, вы, скорее всего, найдете сообщения об ошибках в ~/.xsession-errors, так что поищите подсказки.

0
ответ дан 28 June 2012 в 03:14

Убедитесь, что ваш скрипт начинается с:

#!/bin/sh

Кроме того, убедитесь, что ваш скрипт исполняемый:

chmod a+x path/to/your/script.sh
0
ответ дан 28 June 2012 в 03:14

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

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