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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: вопрос по запуску sh  (Прочитано 6817 раз)

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

Оффлайн SmiGes

  • Автор темы
  • Участник
  • *
  • Сообщений: 187
    • Просмотр профиля
вопрос по запуску sh
« : 04 Мая 2009, 00:17:33 »
вообщем создал простенький скриптик,работает но вопрос в другом как сделать чтоб не вылазило это окно с выбором где открыть а сразу запуск в терминале происходил?
Intel Pentium 4 3 GHz,2 gb RAM,GeForce 7600 GS 512 mb > Arch i686+KDE4+Openbox

Оффлайн Rock

  • Участник
  • *
  • Сообщений: 124
  • Debian GNU/Linux testing
    • Просмотр профиля
Re: вопрос по запуску sh
« Ответ #1 : 04 Мая 2009, 00:19:42 »
Первой строкой должно быть:
#!/bin/sh

И лучше его кинуть в одну из директорий в PATH, или добавить туда пользовательскую.

Оффлайн SmiGes

  • Автор темы
  • Участник
  • *
  • Сообщений: 187
    • Просмотр профиля
Re: вопрос по запуску sh
« Ответ #2 : 04 Мая 2009, 00:51:12 »
ммм,ну первая строка итак #/bin/sh,а вот что такое PATH?
Intel Pentium 4 3 GHz,2 gb RAM,GeForce 7600 GS 512 mb > Arch i686+KDE4+Openbox

Оффлайн Rock

  • Участник
  • *
  • Сообщений: 124
  • Debian GNU/Linux testing
    • Просмотр профиля
Re: вопрос по запуску sh
« Ответ #3 : 04 Мая 2009, 00:58:47 »
echo $PATH
Что такое и как поменять - в гугл или в местный поиск.

Оффлайн SIO

  • Активист
  • *
  • Сообщений: 558
    • Просмотр профиля
Re: вопрос по запуску sh
« Ответ #4 : 04 Мая 2009, 01:22:08 »
  • #!/bin/sh
  • Сделать файл скрипта исполняемым (chmod +x script.sh)

Оффлайн SmiGes

  • Автор темы
  • Участник
  • *
  • Сообщений: 187
    • Просмотр профиля
Re: вопрос по запуску sh
« Ответ #5 : 04 Мая 2009, 02:05:01 »
  • #!/bin/sh
  • Сделать файл скрипта исполняемым (chmod +x script.sh)
ну эт я впервую очередь сделал
Intel Pentium 4 3 GHz,2 gb RAM,GeForce 7600 GS 512 mb > Arch i686+KDE4+Openbox

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: вопрос по запуску sh
« Ответ #6 : 04 Мая 2009, 02:07:21 »
Сделать кнопку запуска для этого скрипта.

Оффлайн Rock

  • Участник
  • *
  • Сообщений: 124
  • Debian GNU/Linux testing
    • Просмотр профиля
Re: вопрос по запуску sh
« Ответ #7 : 04 Мая 2009, 02:14:31 »
Сделать кнопку запуска для этого скрипта.
Не UNIX-way.
Все программы и скрипты должны быть в каталоге bin
Поэтому правильно, либо скопировать в имеющиеся в системе /usr/bin например, либо добавить в PATH ~/bin для пользовательских программ.
Иначе это уход в Program Files в виндоус.

Оффлайн axe

  • Старожил
  • *
  • Сообщений: 1203
    • Просмотр профиля
Re: вопрос по запуску sh
« Ответ #8 : 04 Мая 2009, 02:23:19 »
Rock, каким образом нахождение скрипта в папке из PATH поможет избавиться от диалога на скриншоте при запуске дабл-кликом? И unix-way тут не при чем абсолютно. А при том здесь то, что наутилус интерпретирует такие файлы двояко: как текстовый файл и как исполняемый, и спрашивает, че с ним делать.

Кстати, поведение наутилуса в отношении таких файлов можно изменить глобально: Правка - Параметры - вкладка Поведение - Исполняемые текстовые файлы. Но это повлияет на все такие файлы. Если надо запускать только этот один, а про остальные спрашивать, то совет Kwah верен: кнопка запуска.

Оффлайн Rock

  • Участник
  • *
  • Сообщений: 124
  • Debian GNU/Linux testing
    • Просмотр профиля
Re: вопрос по запуску sh
« Ответ #9 : 04 Мая 2009, 02:38:58 »
каким образом нахождение скрипта в папке из PATH поможет избавиться от диалога на скриншоте при запуске дабл-кликом?
Это однозначно указывает всему в UNIX-like системах, что это программа, а не что-либо еще и это надо запустить. Там-же находится единственное место, где происходит поиск программ.
И unix-way тут не при чем абсолютно. А при том здесь то, что наутилус интерпретирует такие файлы двояко: как текстовый файл и как исполняемый, и спрашивает, че с ним делать.
Очень даже причем. Он написал скрипт, хочет сделать его исполняемым. Он должен позаботится, чтоб он попал в то место, где ему полагается быть. Если этот принцип игнорировать, но в файловой системе будет полнейшая помойка.
Для сравнения.
Программы в виндоус ставят в каталог Program files на одном из дисков, а не в windows/drive cache/ или Мои документы

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

А в продолжении темы о том, что это нафиг никому не надо и этим тока он пользуется, то я бы посмотрел на вас, еслиб вы увидели срач на сервере, когда я на прошлую работу устраивался. Там из-за таких самописных скриптов и жестких линков фиг разберешся было. И "автор" этого бардака тож под конец врядли мог разобраться, учитывая плачевнасть состояния ОС.
« Последнее редактирование: 04 Мая 2009, 02:40:38 от Rock »

Оффлайн axe

  • Старожил
  • *
  • Сообщений: 1203
    • Просмотр профиля
Re: вопрос по запуску sh
« Ответ #10 : 04 Мая 2009, 02:47:07 »
Разве топикстартер просил совета, куда ему класть свои скрипты? Весь этот пыл, имхо, слабо оправдан. Тем более что его проблемы простое помещение в каталог из PATH не решает. Открой, наконец, /usr/bin в наутилусе, найди там bash-скрипт и кликни по нему дважды, чтобы убедиться.

Оффлайн Rock

  • Участник
  • *
  • Сообщений: 124
  • Debian GNU/Linux testing
    • Просмотр профиля
Re: вопрос по запуску sh
« Ответ #11 : 04 Мая 2009, 02:56:25 »
Дело не только в решении проблемы, но и в подходе к ее решению. Это называется "грубый хак" - концептуально не верное, но решение.
С тем-же успехом вы могли-бы посоветовать топикстартеру темы про место на диске, грохнуть файлы из /usr/share/doc
Место прибавилось? Да.
Проблема решена? Да.
Подход верен? Нет!
А начинающий пользователь это сделает и будет думать, что это правильно.
Тут так-же. Он сейчас наплодит скриптов у себя в папке, к ним наделает жестких ярлыков.
Я предлагаю засунуть ее в нужное место и если наутилус ее не будет запускать, то ему можно сделать кнопку с выполнением комманды, а не запуском файла. Его скрипт будет вызываться и через консоль как обычная комманда.
Сегодня он писал скрипт для запуска чего-то гуевого, завтра напишет под консоль и будет из консоли запускать его аналогично. А все потому, что ему не объяснили, как правильно, а предложили хак, не сказав об этом.

Пользователь решил продолжить мысль 04 Мая 2009, 00:57:14:
P.S проверить наутилус не могу. Нет у меня его.

Пользователь решил продолжить мысль 04 Мая 2009, 03:00:12:
Проверил в konqueror.
Из каталога /bin скрипт выполнился, из моего девелопмент каталога - открылся в kwrite.
« Последнее редактирование: 04 Мая 2009, 03:00:12 от Rock »

Оффлайн Frank

  • Старожил
  • *
  • Сообщений: 1799
  • Профессиональный любитель
    • Просмотр профиля
    • Народный форум Николаева
Re: вопрос по запуску sh
« Ответ #12 : 04 Мая 2009, 12:29:27 »
ммм,ну первая строка итак #/bin/sh
Тут опечатка, или в файле действительно отсутствует "!" между "#" и первым слешем?

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: вопрос по запуску sh
« Ответ #13 : 05 Мая 2009, 02:50:32 »
Сделать кнопку запуска для этого скрипта.
Не UNIX-way.
Все программы и скрипты должны быть в каталоге bin
Хех, может любого каталога в PATH ?


Поэтому правильно, либо скопировать в имеющиеся в системе /usr/bin например
Угу, пользовательские скрипты, в общем случае бесправного пользователя...

, либо добавить в PATH ~/bin для пользовательских программ.
Иначе это уход в Program Files в виндоус.
Теплее, только причём тут слова про юникс-вей и виндоус?

Как уже замечено выше, это не проблема расположения, а проблема двоякости интерпретации скриптов Наутилусом, от которой нужно как-то избавиться... Варианты предложили ;)

Оффлайн Rock

  • Участник
  • *
  • Сообщений: 124
  • Debian GNU/Linux testing
    • Просмотр профиля
Re: вопрос по запуску sh
« Ответ #14 : 07 Мая 2009, 13:20:19 »
Kwah,
Почитайте стандарт дерева каталогов Linux и у вас не будет таких вопросов.

Все ИСПОЛНЯЕМОЕ должно находиться в каталогах:
/bin Основные системные комманды.
/usr/bin пользовательское программное обеспечение
/usr/local/bin для собранных локально
~/bin пользовательские скрипты, если это разрешил админ, дав на /home exec

Аналогично и sbin только в нем находятся программы предназначенные для администрирования.

Вы не поняли, да скрипты - можно расценивать двояко, только вот все вменяемые файлменеджеры именно по расположению определяют действие с таким файлом. Если он в каталогах в PATH, то это программа, если нет, то текстовый файл.

 

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