2016-11-22 9 views
0

У меня есть файл оболочки, и мне нужно сделать исполняемый файл, который будет работать на любой Mac без chmod +x, просто дважды щелкнув по нему. Как я могу это сделать? Я пробовал appify, но двойной щелчок по его результату не выполняет мой файл. Я также пробовал решение, представленное в How to execute a shell script from within an app and show it in the terminal, но это приводит к ошибке Permission denied.Как сделать исполняемый сценарий оболочки macOS, который можно использовать на любом компьютере

Сценарий Я пытаюсь сделать исполняемый файл является:

#!/bin/bash 

DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" 

cd $DIR 

SLASH="/" 

INFILE=`find $DIR -name "*.csv"` 

DONE=`perl myfile.pl -i $INFILE -o output.csv -l $DIR$SLASH` 

echo "File(s) are ready to use" 

echo "Press [enter] to escape" 

read terminate 
+2

'bash yourfile.sh' –

+0

Скрипт/приложение автомата, вероятно, поможет здесь. – Petesh

+1

Вы не можете волшебным образом сделать файл исполняемым в системе другого человека. У вас есть 3 вещи, необходимые для выполнения этой работы: 1. сценарий оболочки, 2. скрипт perl (в той же папке, что и сценарий оболочки), и 3. входной файл .csv? которые также находятся в одной папке (это начинает становиться очень грязным, так как find найдет output.csv как часть списка входных файлов). Вам нужен как минимум исполняемый сценарий оболочки, чтобы получить мяч, но, как написано, это не будет хорошо работать. – Petesh

ответ

1

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

Для этого вы можете запустить chmod +x filename.sh

Это сделает это так, вы можете ./filename.sh и выполнить файл.

Вы увидите, когда вы сделаете ls -lah, что будет добавлено разрешение x.

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

+0

примечание: «Мне нужно сделать исполняемый файл, который будет работать на любом Mac без chmod + x, просто дважды щелкнув по нему». Мне хорошо известно, что chmod + x сделает мой файл исполняемым на моем компьютере, но я хочу сделать исполняемый файл, который я могу доставить людям, которые против терминала по какой-либо причине –

+0

, а затем (опасный) 'chmod 777 filename.sh 'должен сортировать это для вас, хотя я советую против этого - проверьте различия между правами пользователя/группы/мира –

+0

Это все равно приводит к' 'Файл« filename.sh »не может быть выполнен, потому что у вас нет соответствующих привилегии доступа. "на любой другой системе –

 Смежные вопросы

  • Нет связанных вопросов^_^