mac文本文件需先添加shebang行、用chmod +x赋执行权限,并以./前缀运行;若来自windows需清理换行符,双击运行须改.command后缀且满足前述条件。

Mac系统本身基于Unix,但新建的文本文件默认不具备可执行属性,必须手动赋予权限并确保解释器声明正确,否则双击或终端运行都会失败。
确认文件内容与格式
打开终端,用file命令检查目标文件类型:file your_script。若返回ASCII text或shell script,说明是纯文本脚本;若显示data或cannot open,可能是编码异常或含隐藏BOM/CR字符。
用ls -l your_script查看当前权限,若最左侧没有x(如-rw-r--r--),则尚未具备可执行资格。
若文件是从Windows传来,需先清理DOS换行符:dos2unix your_script。没有安装dos2unix?可用sed -i '' $'s/\r$//' your_script(macOS sed语法特殊,-i ''不可省略)。
赋予可执行权限
方法一:使用chmod +x(推荐)
在终端中输入:chmod +x your_script。
这会为所有者、组、其他用户同时添加执行权限。若只想让当前用户可执行,改用chmod u+x your_script。
方法二:通过Finder图形界面(仅限简单场景)
右键文件→「显示简介」→拉到最下方「共享与权限」→点击右下角锁图标解锁→在用户列表中选中自己→将权限从「只读」改为「读与写」→再点击「+」号旁的小齿轮→选「应用到包含的项目」(此操作不直接加x位,仅辅助后续chmod生效)。
【注意:chmod后必须用./前缀调用,例如./your_script;直接输文件名会被系统当作命令在PATH中查找,必然报错Command not found】
添加正确的shebang行
第一步:用文本编辑器打开your_script
第二步:在文件最顶端第一行插入对应解释器路径:
Shell脚本写#!/bin/zsh或#!/bin/bash(macOS 12+默认zsh);
Python脚本写#!/usr/bin/env python3(比硬编码路径更兼容);
Perl脚本写#!/usr/bin/perl。
第三步:保存文件。这一步不可跳过——缺少shebang时,即使有x权限,系统也不知该用哪个程序解析它,运行会提示Bad interpreter: No such file or directory。
第四步:再次执行chmod +x your_script(因修改内容后权限标记有时会重置)。
验证并运行
在终端中进入文件所在目录,输入:./your_script。
若看到预期输出,说明成功;若提示Permission denied,说明chmod未生效或文件被隔离(如来自网络下载),需右键→「显示简介」→勾选「通用」里的「已启用」→点「继续」解除隔离。
若想双击运行,把后缀改为.command(如your_script.command),系统会自动关联Terminal.app。但【务必确保shebang存在且权限已设】,否则双击只会闪退终端窗口。











