编写 unix和 windows的 Scala 脚本
编写 unix和 windows的 Scala 脚本
今天在看《Scala 编程》的时候看到附录了,里面提到了怎么在 unix 和 windows 下面编写 scala 脚本。
之前我也一直想用 scala 来在 unix 下写一些脚本,代替 shell,因为我对 shell 说实话不是很熟悉。
先直接给出一个可以正常的运行的例子把:
#!/bin/sh
exec scala "$0" "$@"
!#
1.to(10).foreach(println)
上面的例子就是展示了在 unix 下面scala 脚本的例子,然后再 terminal 下面输入:
sh -x untitled.scala
就可以运行这个文件了。
下面粘贴出书中的附录的内容:
如果你比较喜欢 Unix 的某些风味,通过在文件顶端前缀一个“制式”标志(pound bang),你 可以像运行 shell 脚本那样运行 Scala 脚本。例如,把以下内容输入文件 helloarg:
#!/bin/sh
exec scala "$0" "$@"
!#
// 对第一个参数打招呼
println("Hello, " + args(0) + "!")
头文字#!/bin/sh 必须在文件里最开头一行。一旦你设置了它的执行许可:
$ chmod +x helloarg
你就可以像 shell 脚本那样运行 Scala 脚本,输入:
$ ./helloarg globe
如果你在 Windows 平台,可以把文件命名为 helloarg.bat 并把以下内容放在脚本头,来达到 同样效果:
::#!
@echo off
call scala %0 %*
goto :eof
::!#
同时也看到了这篇文章《Scala 脚本的 pound bang 魔术》http://www.cnblogs.com/agateriver/archive/2010/09/07/scala_pound_bang.html
文章中介绍了一些原理,推荐大家看看。
编写 unix和 windows的 Scala 脚本的更多相关文章
- shell脚本兼容linux/unix与windows/cygwin的基础(注意处理好CR, LF, CR/LF 回车 换行的问题)
shell脚本兼容linux/unix与windows/cygwin的基础 :统一文本格式为:unix文本格式,即于LF为换行符(推荐方案) 在notepad上设置:编辑->档案格式转换-> ...
- windows基线检测脚本编写指南-powershell版
前言: 因为工作的原因,要写windows下的基线检查脚本.之前没接触过,在网上找了半天也没找到现成的,无奈只好自己研究,最后还是成功完成了工作. 在我编写之后发现windows下的基线基本就是检 ...
- [原创]Scala学习:编写Scala脚本
scala支持脚本 1)在/opt/scala-script下创建一个文件hello.scala 编辑内容如下: $ hello ,this is the first scala script 2)运 ...
- 操作系统Unix、Windows、Mac OS、Linux的故事
电脑,计算机已经成为我们生活中必不可少的一部分.无论是大型的超级计算机,还是手机般小巧的终端设备,都跑着一个操作系统.正是这些操作系统,让那些硬件和芯片得意组合起来,让那些软件得以运行,让我们的世界在 ...
- [Oracle] UNIX与Windows 2000上Oracle的差异(II)
作者:Ian Adam & David Stien, SAIC Ltd 日期:19-Dec-2003 出处:http://www.dbanotes.net翻译:Fenng 数据库启动与关闭 在 ...
- [Oracle]UNIX与Windows 2000上Oracle的差异(I)
作者:Ian Adam & David Stien, SAIC Ltd 日期:19-Dec-2003 出处:http://www.dbanotes.net翻译:Fenng ---------- ...
- 解决Windows下编辑脚本上传到Linux后遇到^M的方法
Windows下编辑脚本上传到Linux后遇到^M,导致脚本无法执行,原因是因为Linux与Windows对 "回车键" 编码不同 解决方法如下: 在使用UE->文件-> ...
- sbit命令行中运行scala脚本
一般sbit编译器采成了scala运行工具.启动sbit命令行,输入console,命令行自动切换到scala编辑器面. scala>:paste 然后手动将XXX.scala中的代码拷贝到界面 ...
- Windows下通过脚本快速修改IP地址
Windows下通过脚本快速修改IP地址 如果通过Windows的网络属性修改Ip/网关,真是太麻烦了. 经常要切换ip,所以我写了两个脚本: c:\办公室.bat netsh interface i ...
随机推荐
- iptables/Netfilter 学习
开始学iptables,因为它是和路由器技术紧密结合在一起的. iptables的命令看起来眼花缭乱,随便找两个: iptables -A FORWARD -p tcp -s -d -j ACCEPT ...
- Qt学习笔记 线程(一)
Qt中的线程是与平台无关的 QThread 提供了创建一个新线程的方法 新建一个线程,继承QThread并重写它的run()当调用 start()函数时会调用重载的run()函数 例: #ifndef ...
- C#版的MapReduce
如果不知道MapReduce是怎么工作的,请看这里,如果不知道MapReduce是什么,请google之! 今天“闲”来无事,忽想起C#里没有MapReduce的方法,构思之,coding之: #re ...
- ZeroClipboard / jquery.zclip.min.js跨浏览器复制插件使用中遇到的问题解决
之前写过一个淘宝优惠券连接PC端转手机端连接的小工具,当时写到将转换好的url复制到剪切板这块时解决了IE和火狐,就是没办法搞定Chrome,知道可以通过flash搞定,但是觉得太麻烦没有仔细研究. ...
- AutoMapperHelper
/// <summary> /// AutoMapper帮助类 /// </summary> public static class AutoMapperHelper { // ...
- pay-as-you-go
What is pay as you go? A pay as you go deal means you aren’t tied into a contract and can top up you ...
- 如何设置unobtrusive的语言包
场景:网站是用的validate.unotrusive.js验证的,网站的语言已经切换到繁体了,但是提示语言还是英文. 环境:asp.net mvc4,jquery.validate.unotrusi ...
- C# Label显示多行文本及换行(WinForm/WebForm)
转载: http://www.cnblogs.com/greatverve/archive/2011/10/20/label-multi.html WinForm 很多朋友都会在开发WinForm中遇 ...
- iOS开发-- 利用AVPlayer播放远程音乐和视频
一.简单的播放音乐和视频,播放视频的工具栏需要自己写 二.利用老师封装的框架实现视频播放 链接:http://pan.baidu.com/s/1hrEKlus 密码:8e7g
- 【CodeVS 2822】爱在心中
“每个人都拥有一个梦,即使彼此不相同,能够与你分享,无论失败成功都会感动.爱因为在心中,平凡而不平庸,世界就像迷宫,却又让我们此刻相逢Our Home.” 在爱的国度里有N个人,在他们的心中都有着一个 ...