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


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: Проблема с запуском скриптов.  (Прочитано 2939 раз)

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

Оффлайн Lowpard

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Проблема с запуском скриптов.
« : 12 Август 2008, 12:15:48 »
Здравствуйте.
Извините, если тема такая была, но сколько я не шарил по поиску ответа на свой вопрос не находил, также заранее извиняюсь, если тему завел не в том месте, просто не знал, где ее можно было бы написать.
Проблема заключается в следующем:
1) Подскажите пожалуйста, где я могу прочитать о том, какие файлы необходимы запускать для скрипта (те, что идут после #!);
2) Хочу написать скрипт, чтобы после активации ее открывалась консоль, а в ней автоматически писалась команда (например ls -al). Как мне это сделать? Перепробовал разные пути, но максимально что получалось, это просто открытие консоли и не более;
3) Чем отличаются скрипты в фоновом режиме от обычного? (В плане написания скрипта и как это делать в том или ином случае).
Пока это все.
Спасибо.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Проблема с запуском скриптов.
« Ответ #1 : 12 Август 2008, 12:29:09 »
просто не знал, где ее можно было бы написать.
Есть форум "Программирование". Модератор, наверное, перенесет.

1) Подскажите пожалуйста, где я могу прочитать о том, какие файлы необходимы запускать для скрипта (те, что идут после #!);

Исполняемый файл интерпретатора языка, на котором написан скрипт.
Языки бывают bash (и прочие шеллы), perl, python, ruby, awk .... Здесь http://99-bottles-of-beer.ls-la.net/ их перечислено уже, наверное, под 1000.

Вообще, это может быть любая программа, способная читать команды из файла и выполнять их.
Когда скрипт запускают, шелл проанализирует эту строчку, найдет указанный в ней исполняемый файл, запустит его и даст ему в параметрах командной строки имя файла со скриптом.

2) Хочу написать скрипт, чтобы после активации ее открывалась консоль, а в ней автоматически писалась команда (например ls -al). Как мне это сделать?
от консоли зависит.
Что-то типа konsole -e 'ls -al' и никакого скрипта писать не надо.

3) Чем отличаются скрипты в фоновом режиме от обычного? (В плане написания скрипта и как это делать в том или ином случае).

Способностью самостоятельно разбираться с внештатными ситуациями и не писать ничего в терминал.
Впрочем, как и любая другая программа
« Последнее редактирование: 12 Август 2008, 12:35:46 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Проблема с запуском скриптов.
« Ответ #2 : 12 Август 2008, 12:32:50 »
Языки бывают bash (и прочие шеллы), perl, python, ruby, awk .... Здесь http://99-bottles-of-beer.ls-la.net/ их перечислено уже, наверное, под 1000.

Уже 1214
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Lowpard

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Проблема с запуском скриптов.
« Ответ #3 : 12 Август 2008, 12:48:25 »
2wl
Цитировать
от консоли зависит.
Что-то типа konsole -e 'ls -al' и никакого скрипта писать не надо.
Нет, немного не то, мне хотелось бы видеть это в виде скрипта, чтобы находясь в папке, я мог его активировать и получить в консоли ту команду, которая задана в скрипте. В Вашем данном случае она никак не работает.
Цитировать
Способностью самостоятельно разбираться с внештатными ситуациями и не писать ничего в терминал.
Впрочем, как и любая другая программа
Это примерно я и представлял, вот еще хотелось бы услышать, как они отличаются друг от друга? То есть чем отличаются команды скрипта запускающийся в фоновом режиме от команд скрипта запускающихся в обычном режиме? Что надо, например, прописать в скрипт, чтобы получить скрипт запускающийся из обычного режима в фоновый и наоборот?
Спасибо.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Проблема с запуском скриптов.
« Ответ #4 : 12 Август 2008, 13:19:49 »
Нет, немного не то, мне хотелось бы видеть это в виде скрипта, чтобы находясь в папке, я мог его активировать и получить в консоли ту команду, которая задана в скрипте. В Вашем данном случае она никак не работает.
Не... Не понял.
Вам нужно меню в какой-то оконной оболочке?
Или что?

Пишу в терминале: xterm -e 'ls -la'
В ответ открывается новое окно xterm-a со списком файлов моего домашнего каталога и закрывается.


Цитировать
Это примерно я и представлял, вот еще хотелось бы услышать, как они отличаются друг от друга?
Команды одни и те же, они никак не отличаются друг от друга.

Цитировать
Что надо, например, прописать в скрипт, чтобы получить скрипт запускающийся из обычного режима в фоновый и наоборот?
Чтобы запустить программу в фоновом режиме, надо, вызывая ее из командной строки, в конце написать &
Если нужно, чтобы программа в ходе выполнения породила новый процесс и оставила его в фоне, это зависит от языка.
В bash достаточно того же & . В питоне нужны манипуляции с системным вызовом fork.
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Lowpard

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Проблема с запуском скриптов.
« Ответ #5 : 12 Август 2008, 13:38:29 »
Цитировать
Не... Не понял.
Вам нужно меню в какой-то оконной оболочке?
Или что?

Пишу в терминале: xterm -e 'ls -la'
В ответ открывается новое окно xterm-a со списком файлов моего домашнего каталога и закрывается.
Я хочу сделать скрипт .sh, переместить его в папку со скриптами (/home/***/.gnome2/nautilus-scripts), и в последующем запускался при нажатий ПКМ - Сценарии. А скрипт выполнял бы следующую операцию: в зависимости от того, в какой папке находишься, запускал терминал и в нем сразу прописывал ту команду, которая задана в скрипте.
Вот только у меня максимально что получалось запустить, так это терминал. Сама команда в нем не вводилась.
Спасибо.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Проблема с запуском скриптов.
« Ответ #6 : 12 Август 2008, 14:24:53 »
Лучше изучить вот это http://developer.gnome.org/arch/component/bonobo.html
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Проблема с запуском скриптов.
« Ответ #7 : 13 Август 2008, 06:40:47 »
С сайта http://g-scripts.sourceforge.net/index.php взят примерчик и совсем немного переделан
добавлена опция "-e 'bash --rcfile ~/.tt.rc'". Вот что получилось
Код: Text
  1. #!/usr/bin/perl -w
  2. #
  3. # Open terminal here
  4. #
  5. # Nautilus script that opens a gnome-terminal at the current location, if it's
  6. # a valid one. This could be done in shell script, but I love Perl!.
  7. #
  8. # 20020930 -- Javier Donaire <jyuyu@fraguel.org>
  9. # http://www.fraguel.org/~jyuyu/
  10. # Licensed under the GPL v2+
  11. #
  12. # Modified by: Dexter Ang [thepoch@mydestiny.net]
  13. # 2003-12-08: Modified for Gnome 2.4
  14. #               - Added checking if executed on Desktop "x-nautilus-desktop:///"
  15. #                 so that it opens in /home/{user}/Desktop
  16.  
  17. use strict;
  18.  
  19. $_ = $ENV{'NAUTILUS_SCRIPT_CURRENT_URI'};
  20. if ($_ and m#^file:///#) {
  21.   s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;
  22.   s#^file://##;
  23.   exec "gnome-terminal --working-directory='$_' -e 'bash --rcfile ~/.tt.rc'";
  24. }
  25.  
  26. # Added 2003-12-08 Dexter Ang
  27. if ($_ == "x-nautilus-desktop:///") {
  28.   $_ = $ENV{'HOME'};
  29.   $_ = $_.'/Desktop';
  30.   exec "gnome-terminal --working-directory='$_' -e 'bash --rcfile ~/.tt.rc'";
  31. }
  32.  

Естественно для того чтобы оно работало надо написать маленький дополнительный файлик и положить его в домашнюю директорию.
Код: Text
  1. #!/bin/bash
  2. . ~/.bashrc
  3. ls -l
  4.  
Собственно нужная тебе командочка прописана самой последней :) Для кажжой желаемой командочки создаешь такой файлик и подгружешь в скрипт как показано в первом коде

Оффлайн KPACHblu

  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Проблема с запуском скриптов.
« Ответ #8 : 30 Сентябрь 2008, 21:15:16 »
Прошу помочь в написании маленького скриптика:
нужно,чтоб скрипт прописывал в терминале стоку " ./WebSurfer.lbin XXXX ",
Как я не извращался над бедным Башем,он меня так и не смог понять:(

Оффлайн vadim-nsk

  • LoCo команда
  • Старожил
  • *
  • Сообщений: 1318
  • Жить надо так, как горит пламя!
    • Просмотр профиля
    • Linux в Новосибирске
Re: Проблема с запуском скриптов.
« Ответ #9 : 30 Сентябрь 2008, 21:21:46 »
Прошу помочь в написании маленького скриптика:
нужно,чтоб скрипт прописывал в терминале стоку " ./WebSurfer.lbin XXXX ",
Как я не извращался над бедным Башем,он меня так и не смог понять:(
ГЫ, енто? и что это тебе даст?

#!/bin/bash
echo './WebSurfer.lbin XXXX'

Оффлайн KPACHblu

  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Проблема с запуском скриптов.
« Ответ #10 : 30 Сентябрь 2008, 21:38:56 »
Ну,Надо:)
У меня после этого:
Цитировать
#!/bin/bash
echo './WebSurfer.lbin XXXX'
открывается лишь терминал:(

Оффлайн vadim-nsk

  • LoCo команда
  • Старожил
  • *
  • Сообщений: 1318
  • Жить надо так, как горит пламя!
    • Просмотр профиля
    • Linux в Новосибирске
Re: Проблема с запуском скриптов.
« Ответ #11 : 30 Сентябрь 2008, 21:40:39 »
ну я так подумал ты из терминала этот скрипт выполняешь :)
может подробнее напишешь. что ты хочешь :)

Оффлайн KPACHblu

  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Проблема с запуском скриптов.
« Ответ #12 : 30 Сентябрь 2008, 21:57:27 »
Попытаюсь:)Мне нужно,чтоб скрипт запустил терминал,ввёл строку "хххххххх" и нажал "Enter"  и всё:)Тоесть не надо,чтоб скрипт это делал как-то фоново или ещё как-то))

Оффлайн ffsdmad

  • Любитель
  • *
  • Сообщений: 58
  • long live
    • Просмотр профиля
Re: Проблема с запуском скриптов.
« Ответ #13 : 30 Сентябрь 2008, 22:41:21 »
Попытаюсь:)Мне нужно,чтоб скрипт запустил терминал,ввёл строку "хххххххх" и нажал "Enter"  и всё:)Тоесть не надо,чтоб скрипт это делал как-то фоново или ещё как-то))
попробуй вот так:

xterm  -e 'echo "xxxx" ;read '

Оффлайн KPACHblu

  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Проблема с запуском скриптов.
« Ответ #14 : 30 Сентябрь 2008, 23:35:35 »
Добился нужного результата через "Создание кнопки запуска" с параметрами:
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Surf
Type=Application
Terminal=true
Icon[ru_UA]=gnome-panel-launcher
Exec=ХХХХ
Name[ru_UA]=Surf
Icon=gnome-panel-launcher
GenericName[ru_UA]=

Всем большое спасибо!!

 

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