Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我从Programming in Scala一书中了解到,我可以通过编写以下内容来启动 scala 脚本:
#!/bin/sh exec scala "$0" "$@" !# println("hello world")
没关系,但我也尝试过这种风格:
#!/usr/bin/env scala !# println("hello world")
并发现这个也运行正常。 所以我不知道两者之间有什么区别。 而且,如果两者都可以,为什么本书选择前一个来演示,看起来有点长?
它们是等价的。不同之处在于后者运行一个shell进程来启动Scala解释器,而前者使用env程序,它比shell更轻量级,并且显然不需要将shell代码和Scala混合在一个文件中(这可能会扰乱您的编辑器和其他工具)。
env