所以我有这个简单的可执行.command 文件:
#!/bin/bash
cd Desktop;
python hoi.py;
exit;
每当我运行它时,它都会在终端中显示:
Tom-Diterwich:~student$ /Users/student/Desktop/run.command ;退出;
/Users/student/Desktop/run.command:第 1 行:{rtf1ansiansicpg1252cocoartf1348cocoasubrtf170:找不到命令
/Users/student/Desktop/run.command:第 2 行:意外标记“}”附近出现语法错误
/Users/student/Desktop/run.command:第 2 行:`{ onttbl 0 现代 charset0 Courier;}'
退出
[流程完成]
为什么要这样做?
您无意中使用 TextEdit 将文件保存为 RTF(富文本格式),而
bash
shell 只需要纯文本,而不是包含斜体、粗体或大字体文本的文档。
在TextEdit中再次加载文件并按
⇧+⌘+T
这对应于单击菜单项:格式->制作纯文本。现在重新保存现有文件,一切都将起作用。
您可以使用
file
命令轻松检查文件是富文本格式 (RTF) 还是纯文本:
file SOMEFILE
您将得到:
SOMEFILE: Rich Text Format data, version 1, ANSI, code page 1252
或
SOMEFILE: ASCII text, with no line terminators
顺便说一句,您可以从代码中删除所有分号和
exit
,因为它们是多余的。
请注意,您可以通过在终端中运行以下命令来使
TextEdit
始终对新文档使用纯文本并始终保存纯文本:
# Use plain text mode for new TextEdit documents
defaults write com.apple.TextEdit RichText -int 0
# Open and save files as UTF-8 in TextEdit
defaults write com.apple.TextEdit PlainTextEncoding -int 4
defaults write com.apple.TextEdit PlainTextEncodingForWrite -int 4