Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Прошу помощи в написании скрипта который бы открывал указанную директорию в тер  (Прочитано 1258 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ufoasd

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Уважаемые  Спецы. Подскажите как правильно написать скрипт который бы запускал терминал, заходил в указанную папку а от туда запускал скрипт с правами ./

Распаковал игру sauerbraten в папку /текущий пользователь/Игры/sauerbraten в ней скрипт sauerbraten_unix  который необходимо запустить ./sauerbraten_unix

Создаю кнопку запуска в ней команду sh /home/текущий пользователь/sauerbraten/sauerbraten_unix
Не срабатывает. В правах на скрипт sauerbraten_unix включаю запускать как программу

Что мне сделать.
Хочу чтобы в Приложения - Игры - был - sauerbraten
Постоянно в терминал лезть не хочется

Оффлайн БТР

  • Заслуженный пользователь
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 5424
    • Просмотр профиля
Распаковал игру sauerbraten в папку /текущий пользователь/Игры/sauerbraten

Создаю кнопку запуска в ней команду sh /home/текущий пользователь/sauerbraten/sauerbraten_unix

Оффлайн ufoasd

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Извиняюсь, Создаю кнопку запуска в ней команду sh /home/текущий пользователь/Игры/sauerbraten/sauerbraten_unix
опечатка
Вопрос остается

Оффлайн inkblack

  • Старожил
  • *
  • Сообщений: 1216
    • Просмотр профиля
Сделайте кнопку, а в свойствах укажите «Приложение в терминале»:

Делюсь знаниями, но их у меня мало!

Оффлайн ufoasd

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
 Да хоть как приложение хоть как приложение в терминале, если было бы все так просто то не спрашивал
Вот сам скрипт:

#!/bin/sh
# SAUER_DATA should refer to the directory in which Sauerbraten data files are placed.
#SAUER_DATA=~/sauerbraten
#SAUER_DATA=/usr/local/sauerbraten
SAUER_DATA=.

# SAUER_BIN should refer to the directory in which Sauerbraten executable files are placed.
SAUER_BIN=${SAUER_DATA}/bin_unix

# SAUER_OPTIONS contains any command line options you would like to start Sauerbraten with.
#SAUER_OPTIONS="-f"
SAUER_OPTIONS="-q${HOME}/.sauerbraten -r"

# SYSTEM_NAME should be set to the name of your operating system.
#SYSTEM_NAME=Linux
SYSTEM_NAME=`uname -s`

# MACHINE_NAME should be set to the name of your processor.
#MACHINE_NAME=i686
MACHINE_NAME=`uname -m`

case ${SYSTEM_NAME} in
Linux)
  SYSTEM_NAME=linux_
  ;;
*)
  SYSTEM_NAME=unknown_
  ;;
esac

case ${MACHINE_NAME} in
i486|i586|i686)
  MACHINE_NAME=
  ;;
x86_64)
  MACHINE_NAME=64_
  ;;
*)
  if [ ${SYSTEM_NAME} != native_ ]
  then
    SYSTEM_NAME=native_
  fi
  MACHINE_NAME=
  ;;
esac

if [ -x ${SAUER_BIN}/native_client ]
then
  SYSTEM_NAME=native_
  MACHINE_NAME=
fi

if [ -x ${SAUER_BIN}/${SYSTEM_NAME}${MACHINE_NAME}client ]
then
  cd ${SAUER_DATA}
  exec ${SAUER_BIN}/${SYSTEM_NAME}${MACHINE_NAME}client ${SAUER_OPTIONS} "$@"
else
  echo "Your platform does not have a pre-compiled Sauerbraten client."
  echo "Please follow the following steps to build a native client:"
  echo "1) Ensure you have the SDL, SDL-image, SDL-mixer, and OpenGL libraries installed."
  echo "2) Change directory to src/ and type \"make install\"."
  echo "3) If the build succeeds, return to this directory and run this script again."
  exit 1
fi

Вопрос по прежнему открыт


Оффлайн inkblack

  • Старожил
  • *
  • Сообщений: 1216
    • Просмотр профиля
Скрипт запускается, но терминал почему-то не появляется.
Делюсь знаниями, но их у меня мало!

andrey_p

  • Гость
Попробуй заменить
SAUER_DATA=.
на
SAUER_DATA=$(dirname $0)Если не получиться, то добавь после #!/bin/sh
set -x
А в самый конец скрипта:
read keyИ вывод сюда. И да - запускать в терминале в свойствах ярлыка.
« Последнее редактирование: 14 Сентябрь 2011, 18:52:14 от andrey_p »

Оффлайн inkblack

  • Старожил
  • *
  • Сообщений: 1216
    • Просмотр профиля
Всё работает:



Просто без этого sleep 10 терминал запускался, скрипт отрабатывал и терминал закрывался практически мгновенно, ничего не показав на экране.
« Последнее редактирование: 14 Сентябрь 2011, 19:00:06 от inkblack »
Делюсь знаниями, но их у меня мало!

Оффлайн ufoasd

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Не обязательно в терминале, если я открываю наутилус захожу в директорию с игрой дважды нажимаю на sauerbraten_unix игра запускается.
Я же хочу ярлык(кнопку запуска) в панели задач - приложения - игры.
Захожу  в система - главное меню -игры -новый элемент - команда - sh /home/тек. Пользователь/Игры/sauerbraten/sauerbraten_unix - и ноль.
Мне не важно как он будет запускать игру и через что мне нужен ярлык может синтаксис не правилен?,
поэтому я предположил, что нужно написать (свой новый) скрипт, который бы в начале открывал терминал поскольку он не требователен к ресурсам - заходил в папку с игрой и из этой папки запускал скрипт sauerbraten_unix написанный не мной.
А запуск самого скрипта добавил бы в команду кнопки  - sh /адрес/свой скрипт.sh
Так вот у меня вопрос - что я должен написать в своем скрипте

Пользователь решил продолжить мысль 14 Сентябрь 2011, 19:04:47:
Активист и Герой +++ Вам и Биггест Сэнкс!!!

Все работает!

Еще раз Спасибо!

Вопрос закрыт



Пользователь решил продолжить мысль 14 Сентябрь 2011, 19:05:24:
Активист и Герой +++ Вам и Биггест Сэнкс!!!

Все работает!

Еще раз Спасибо!

Вопрос закрыт
« Последнее редактирование: 14 Сентябрь 2011, 19:05:24 от ufoasd »

Оффлайн inkblack

  • Старожил
  • *
  • Сообщений: 1216
    • Просмотр профиля
У вас какой текущий каталог получается, когда вы скрипт кнопкой запускаете?

А, не видел ваше дополнение. Работает — и хорошо!
Делюсь знаниями, но их у меня мало!

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
в кнопке запуска надо написать
bash -c 'cd /путь/до/sauerbraten_unix; ./sauerbraten_unix'

 

Страница сгенерирована за 0.074 секунд. Запросов: 25.