【发布时间】:2017-04-06 07:18:32
【问题描述】:
我有一个 shell 文件,我需要创建一个可执行文件,它可以在没有chmod +x 的任何 Mac 上运行,只需双击它。我怎样才能做到这一点?我试过appify,但双击它的结果不会执行我的文件。我也尝试过How to execute a shell script from within an app and show it in the terminal 中提出的解决方案,但这会导致错误Permission denied。
我要执行的脚本是:
#!/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
【问题讨论】:
-
bash yourfile.sh -
自动化脚本/应用程序可能会有所帮助。
-
您不能神奇地使文件在其他人的系统上可执行。完成这项工作需要三件事:1. shell 脚本,2. perl 脚本(与 shell 脚本在同一文件夹中)和 3. 输入的 .csv 文件?它们也在同一个文件夹中(这开始变得非常混乱,因为 find 会发现 output.csv 作为输入文件列表的一部分)。您至少需要一个可执行的 shell 脚本才能启动,但正如所写的那样,它不会很好地工作。
-
我的可交付成果是一个包含运行 shell 脚本的所有要求的文件夹。在最佳情况下,最终用户只需双击可执行文件并准备好输出文件。
-
如果您要交付文件夹;它必须被捆绑。所有典型的捆绑形式(.zip、.tar)都将尊重捆绑中文件上设置的可执行位,因此这是克服的一个障碍。 chepner 的单个 perl 脚本可能是更好的解决方案;并且可以嵌入到可以签名的自动机可执行文件中(绕过看门人)
标签: bash shell sh executable