делает исполняемый файл сценария bash программным

10

Мне нужно создать скрипт bash для создания и монтирования диска. Итак, две простые команды. Оба «работают» при вводе в командной строке.

Сценарий создается и выполняется каждый раз, когда обычный пользователь входит в систему, поэтому мне нужен способ сделать этот скрипт исполняемым в то время. Пока я не могу заставить это работать. Например, первая часть «mkdir / vvv / gggg» не выполняется, потому что скрипт не является исполняемым (я предполагаю).

Надеюсь, это имеет смысл. Это возможно? Любые мысли о том, как сделать эту работу, будут оценены.

Update:

Спасибо за ваши ответы. Я, вероятно, должен добавить дополнительную информацию, кроме того, что я новичок в Linux.

Я использую приложение с открытым исходным кодом для виртуального рабочего стола под названием Ulteo. Это приложение работает поверх Ubuntu и имеет очень небольшую поддержку - вот почему я здесь. В принципе, я учусь огнем.

Итак, приложение имеет функцию управления сценарием входа, где я могу связать скрипт с пользователем. Простой сценарий Windows с использованием сети работает отлично. Однако, когда я пытаюсь применить скрипт bash для Linux, ничего не происходит.

Я так думаю, потому что мне нужно сначала выполнить chmod +x против скрипта, чтобы сделать исполняемый файл сценария, вот почему его провал. Между прочим, Ултео бежит в тюрьму-хронику. Я создал скрипт, сохранил его и не смог найти скрипт. Я искал как внутри, так и за пределами тюрьмы chroot.

Мне нравится подход dan08, чтобы исходный скрипт ссылался на другой скрипт, который я могу найти и сделать исполняемым вручную. Я столкнулся бы с той же проблемой?

Означает ли эта дополнительная информация ситуацию? Спасибо заранее.

Фотографии прилагаются. ! [консоль управления сеансом входа] [1] ! [скрипты windows, которые работают] [2]! [простой скрипт linux, который не работает] [3]

Извините, я не могу опубликовать изображения еще

    
задан HIlton Dynamics 09.09.2014 в 12:16
источник

4 ответа

16

Вам нужно сделать две вещи:

  1. Ссылка на интерпретатор сценария в начале скрипта:

    #!/bin/bash
    
  2. Задайте разрешения для его выполнения:

    chmod +x myscript.sh
    
ответ дан Ed Manet 09.09.2014 в 13:24
2

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

script.sh достаточно для запуска исполняемого скрипта.

Однако

Можно запустить скрипт, не подлежащий экстенту, если вы укажете программу для ее запуска.

Таким образом, /bin/bash script.sh или bash script.sh или python script.py будут запускать неисполняемые скрипты.

Итак, мое предложение - отредактировать способ вызова сценария и указать двоичный файл, используемый для его запуска.

    
ответ дан dan08 09.09.2014 в 13:09
0

Создайте программу на C, C ++ или Python и т. д. и используйте системную команду для выполнения сценария bash.

Например, программа C будет выглядеть так:

#include "stdio.h"
int main(int argc, char const *argv[])
{
    system('chmod +x path/yourbashscript.sh');
    system('path/yourbashscript.sh');
    return 0;
}

Чтобы запустить программу при запуске, добавьте ее в список загрузочных программ. Откройте Startup Applications из вашей тире и добавьте скомпилированный исполняемый файл в список, нажав кнопку добавления.

    
ответ дан akabhirav 09.09.2014 в 12:29
0

Вы можете сделать свой исполняемый файл сценария bash, выполнив следующее в командной строке.

cd ~/path/to/file
chmod +x nameoffile.sh

Затем выполнение его при запуске может быть выполнено путем добавления его в список загрузочных программ, как сказал @akabhirav.

    
ответ дан LanceLafontaine 09.09.2014 в 13:21