我在Windows上写了一堆脚本(无法修改)。 Windows允许在其#!
命令中使用相对路径。我们正试图在Unix上运行这些脚本,但Bash似乎只是在其#!
指令中考虑绝对路径。我环顾四周,但一直未能找到Bash中的选项或设计替换和解释名称的程序。是否有可能重写该功能 - 甚至可能通过使用不同的shell?是否可以重写hashbang/shebang路径行为
回答
通常,您可以指定二进制文件来执行脚本,这会导致#!
被忽略。所以,如果你有一个Python脚本,看起来像:
#!..\bin\python2.6
# code would be here.
在Unix/Linux你可以说:
prompt$ python2.6 <scriptfile>
,它会执行使用命令行二进制文件。我将hashbang行视为一个要求操作系统使用行中指定的二进制文件的行,但您可以通过不执行脚本作为正常可执行文件来覆盖它。
最糟糕的情况是,您可能会编写一些包装脚本,这些包装脚本会明确告诉解释器在您将使用的所有平台的脚本文件中执行代码。
不幸的是,我正在使用的语言不使用#作为注释,所以这将不起作用 - 当然,如果语言* *支持这一点,这将是答案,所以我会给你的观点。 – wickedchicken 2010-07-20 19:36:08
为了记录,使用#作为注释与是否与#无关!在文件的开始将工作。见http://en.wikipedia.org/wiki/Shebang_(Unix) – ninjagecko 2011-04-26 18:54:50
- 1. 是否可以重写drupal_build_css_cache?
- 2. 是否可以定义可重用的路径操作?
- 3. 是否可以重写Visual Studio项目文件中的Nuget提示路径?
- 4. 是否可以重写ASP.NET MVC中[Authorize]的默认行为?
- 5. 要重写路径
- 6. url重写路径
- 7. 是否可以重写表单助手?
- 8. 是否可以重写内联函数?
- 9. 是否可以重写“调用”函数?
- 10. 是否可以重写Swift中的deinit?
- 11. 是否可以将自定义路径追加到Rails路由的“新”路径?
- 12. 使用mod重写apache重写路径
- 13. WCF ServiceRoute路由前缀是否可以包含路径值?
- 14. 为mod重写添加路径
- 15. 将URL参数重写为新路径
- 16. 将旧的.aspx路径重写为新的MVC路径
- 17. 重写Bootstrap V4的预设CSS是否可以重写?
- 18. IIS7:URL重写 - 它可以用来隐藏CDN路径吗?
- 19. htaccess - 重写参数路径
- 20. 被重写的Cookie路径
- 21. url重写 - 构建路径
- 22. 重写的CSS/JS路径
- 23. web.config重写路径规则
- 24. 路径重写WCF服务
- 25. ASP重写URL路径
- 26. C#StreamReader(字符串路径) - 路径是否可以再次访问?
- 27. 是否可以在运行时重写一个方法?
- 28. 是否可以在动态网站上进行网址重写?
- 29. 是否可以在asp.net中进行URL重写?
- 30. 推送ID的路径是否重要?
Windows在批处理脚本中不使用'#!'。你是指Windows下的Cygwin? – casablanca 2010-07-19 20:54:02
如果脚本无法修改,它不是一个编程问题。 – 2010-07-19 20:54:55
这不是Bash,而是处理shebang行的内核。 – 2010-07-19 22:20:25