【问题标题】:How does #! work and how can I make it work for CoffeeScript?如何 #!工作,我怎样才能使它适用于 CoffeeScript?
【发布时间】:2011-08-11 02:23:42
【问题描述】:

我可以让 CoffeeScript 文件像 Perl 或 shell 脚本一样可执行吗?

类似添加的东西

#!coffee

在上面? (我试过了,我得到的只是“糟糕的解释器”)

如果有什么不同的话,我在 OS X 上。

【问题讨论】:

    标签: macos shell coffeescript


    【解决方案1】:

    你可以使用:

    #!/usr/bin/env coffee
    
    console.log 'hello coffeescript!'
    

    只要确保你也使文件可执行:

    chmod +x myfile.coffee
    

    然后你可以运行它:

    myfile.coffee
    

    【讨论】:

      【解决方案2】:

      你试过绝对路径吗? “糟糕的解释器”通常意味着末尾有一个流氓换行符,例如你需要在上面运行dos2unix

      【讨论】:

      • 流氓\r真的可以扔掉吗?我对 mac 感到特别惊讶 - \r 曾经是 OSX IIRC 之前的 mac 行结尾...我以前在其他 *nixes 上没见过这个,但后来我几乎不使用 windows,因此很少使用 dos 行结尾
      • 是的,可以。当我从 Cygwin(足够聪明地处理它)转移到旧的 bash shell 时,我一直都会发生这种情况。它正在寻找(在我的情况下)“/usr/bin/perl\r
      • 你是对的,刚刚在我的 Ubuntu 机器上测试了这个......不喜欢 \r 如果你留下了尾随空格,错误消息变得更加不透明 - 它试图运行一个名为\r 的文件,只是说“没有这样的文件或目录”,名称明显为空......
      【解决方案3】:

      你需要一个绝对路径(至少在 linux 上,OSX 可能不同)

      或者你可以使用env作弊

      #!/usr/bin/env coffee
      # **Your script here**
      

      如果您遇到该错误,您似乎已经确定您已使脚本可执行

      【讨论】:

      • 由于某种原因,绝对路径不起作用,但 /usr/bin/env 可以,谢谢
      猜你喜欢
      • 2021-01-30
      • 2016-07-24
      • 2019-05-25
      • 2022-07-07
      • 1970-01-01
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多