Mac上实现一个简单的shell脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac上实现一个简单的shell脚本相关的知识,希望对你有一定的参考价值。

参考技术A 如何实现一个简单的shell脚本呢?
(这里用到的命令工具是iTerm2)

直接上开始吧

cd到目标文件夹:$cd test

新建脚本$touch 123.sh

双击123.sh,里面写入:
mkdir shell
cd shell
touch 123.txt

然后保存一下,此刻已经完成了一个简单的脚本(123.sh)

运行脚本的几种方式,
方式1: $bash 123.sh

方式2: $zsh 123.sh

方式3: $source 123.sh

其中方式3会进入脚本执行完毕的目录(shell)

方式4: $./123.sh

如果出现提示 ./123.sh: Permission denied 表示文件没权限执行

查看文件权限
$ls -l 123.sh

发现没有x,表示没有可执行权限,紧接着

给文件添加可执行权限,并再次查看文件权限,两条命令:
ls -l 123.sh

发现有x了,然后再执行./123.sh
发现shell文件夹已经被创建,123.txt也被创建

为了达到预期效果,每次执行脚本之前都应该先删除shell文件夹,否则会提示文件已存在

如何在 Mac OS 的拾色器上实现放大镜玻璃?

【中文标题】如何在 Mac OS 的拾色器上实现放大镜玻璃?【英文标题】:How to implement the magnifier glass on color picker of Mac OS? 【发布时间】:2013-03-21 02:37:57 【问题描述】:

是左上角的放大镜:

我尝试了两种方法,但都失败了。

    单击放大镜后,创建一个新光标(带有放大镜图像的光标,或十字路口等)并按下它,然后调用 nextEventMatchingMask:untilDate:inMode:dequeue: of NSApplication 吃完所有的活动直到 我们得到一个NSLeftMouseUp 事件。它确实有效,但并不完美,当点击点超出原始窗口时,其他窗口或应用程序将排在前面。

    创建一个 NSColorPanel,尝试向面板发送一个假的鼠标点击事件。它适用于色轮,但一旦我将事件位置更改为放大镜玻璃按钮,它就没有效果了。

[1] 中的问题:如何在用户单击左键之前禁止所有系统鼠标事件调度?

[2] 中的问题:这可能吗?

感谢您的回复。

【问题讨论】:

不清楚你想做什么。 @bneely,我认为他想要什么很清楚。我猜那个放大镜实际上是一个不透明的 NSWindow 覆盖光标(或光标图像弹出到十字准线)。 【参考方案1】:

如果我们想阻止系统事件调度,可以使用 Quartz 事件服务,但是它有两个问题:

    应由用户启用辅助功能; 沙盒下禁止 Quartz 事件服务。

不可能让方法1成功。

受到@CodaFi 的启发,我决定使用 NSWindow 的子类来实现它。在 gitbub https://github.com/wentingliu/ScreenPicker 创建了一个示例项目,去看看吧。

【讨论】:

以上是关于Mac上实现一个简单的shell脚本的主要内容,如果未能解决你的问题,请参考以下文章

sh appify - 从shell脚本创建最简单的Mac应用程序(添加应用程序图标)

sh appify - 从shell脚本创建最简单的Mac应用程序(添加应用程序图标)

shell脚本中实现远程和其他用户的子shell执行

Mac 上使用 Shell 脚本 + adb shell 实现简单的 Android 模拟点击自动化测试

Mac 上使用 Shell 脚本 + adb shell 实现简单的 Android 模拟点击自动化测试

mac设置shell脚本开机自启动