首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过拖动到macOS中的命令行应用程序来传递C参数

通过拖动到macOS中的命令行应用程序来传递C参数
EN

Stack Overflow用户
提问于 2019-07-17 02:32:49
回答 1查看 239关注 0票数 1

我已经用XCODE为MACOS创建了一个命令行应用程序。

它是一个简单的C程序,接受作为ARGV传递到命令行的文件名。

我的问题是:如何在创建的可执行文件上启用拖放,以便只需将fine拖动到可执行文件即可传递ARGC参数?

EN

回答 1

Stack Overflow用户

发布于 2019-07-17 03:11:31

当您创建一个简单的可执行命令行程序时,当您只是将一个文件拖放到它上面时,macOS并不知道您想要做什么。您需要做的是创建一个适当的macOS应用程序。

为此:

  1. 打开 Automator.app
  2. 创建一个新的应用程序
  3. 从左侧,将 Run Shell Script 拖到右侧窗格
  4. 选择传递输入 → 作为参数
  5. 作为脚本的内容,输入: /path/to/test "$@" 其中/path/to/test 是 C 可执行文件的实际路径。
  6. 将应用程序保存在您喜欢的任何位置。

一旦您将一个文件拖到新创建的.app上,它将简单地调用您的C可执行文件,并将文件名作为第一个参数传递,或者,对于许多文件,传递所有文件名。

举个例子,我做了一个小的Python脚本~/Desktop/test.py,它需要是可执行的(chmod +x ~/Desktop/test.py):

代码语言:javascript
复制
#!/usr/bin/env python
import sys
print("Running a script with " + str(sys.argv[1:])

然后,我创建了以下Automator操作:

这样做的目的是捕获Python脚本的输出,并在脚本完成后显示包含该输出的通知。因此,当我将test.py文件拖到.app上时,会得到以下输出:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57064400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档