编写 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

文章中介绍了一些原理,推荐大家看看。

时间: 2024-10-03 22:14:52

编写 unix和 windows的 Scala 脚本的相关文章

Scala入门到精通——第三十节 Scala脚本编程与结束语

本节主要内容 REPL命令行高级使用 使用Scala进行Linux脚本编程 结束语 1. REPL命令行高级使用 在使用REPL命令行时,有时候我们需要粘贴的代码比较大,而普通的粘贴可能会些一些问题,比如中文粘贴会出现乱码.多行代码粘贴时会出错,此时需要用到REPL的高级功能.在日常开发过程中,我们粘贴多行代码的时候会遇到下列问题: //本意是要粘贴下面两行代码 class Person(val name:String,val age:Int) val p=new Person("摇摆少年梦&q

zt:用Syslog 记录UNIX和Windows日志的方法

http://www.chinalinuxpub.com/read.php?wid=1720 在比较大规模的网络应用或者对安全有一定要求的应用中,通常需要对系统的日志进行记录分类并审核,默认情况下,每个系统会在本地硬盘上记录自己的日志,这样虽然也能有日志记录,但是有很多缺点:首先是管理不便,当服务器数量比较多的时候,登陆每台服务器去管理分析日志会十分不便,其次是安全问题,一旦有入侵者登陆系统,他可以轻松的删除所有日志,系统安全分析人员不能得到任何入侵信息.因此,在网络中安排一台专用的日志服务器来

用Windows XP启动脚本恢复系统的用户密码

用一种不用第三方软件的方法来恢复管理员密码,大家可以看看这招技巧如何. Windows XP启动脚本(startup scripts)是计算机在登录屏幕出现之前运行的批处理文件,它的功能类似于Windows 9×和DOS中的自动执行批处理文件autoexec.bat.利用这个特性,可以编写一个批处理文件重新设置用户密码,并将它加入启动脚本中,这样就达到了目的.以下是具体步骤(假设系统目录为C:\Windows). 1.使用Windows98启动盘启动电脑.编写一个能恢复密码的批处理文件a.bat

分布式DB2 10.5 for Linux, UNIX和Windows特性的区别

DB2 10.5 产品家族包含 6 个付费版本,一个单独付费的特性和一个免费包.本文的目的是帮助您理解它们之间的区别. 文中还会列出 DB2 10.5 中提供的新功能,比如 BLU Acceleration.DB2 pureScale 增强.SQL 兼容性增强和简化的产品包装. DB2 with BLU Acceleration 结合了高级.创 新的功能,以加速执行数据库和数据仓库的工作负载分析.DB2 with BLU Acceleration 还集成了 IBM Cognos® Busines

DB2 for Linux, UNIX, and Windows 10.1中的单向模式订阅

这意味着已定义的数据库结构更改(比如创建新表)会自动添加到复制系统,无需任何管理或干预.当在主数据库中添加或更改表时,这不仅会取消或大大减少http://www.aliyun.com/zixun/aggregation/30785.html">管理工作,而且会极大地增加复制系统的可靠性,特别在作为一个活动的灾难恢复站点的同步机制使用时.本文是系列文章的第一部分,将通过一个灾难恢复使用案例,解释如何为 Q Replication 技术中提供的单向复制拓扑结构建立模式级订阅,该技术是 IBM

为DB2 UDB for Linux, UNIX, and Windows提供Unicode支持的实用方法

简介 当今的应用程序常常设计为供国际化使用.这些应用程序可能需要处理不同语言的字符串 .而 Unicode 正是一种与语言无关的字符表示标准. 由于 Java 编程语言已经在内部使用 Unicode 来表示字符,所以国际化应用程序的开发已经容易多了.但是,不能只考虑应用程序端.后端的 数据库也必须能够处理 Unicode 字符.本文将讨论几个主题,帮助开发人员实现供国际化使用的 DB2 UDB 应用程序. DB2 中支持何种 Unicode 标准? 只有一种 Unicode 标准,但是存在不同的

批量安装windows补丁的脚本

批量安装windows补丁的脚本 1. 创建install.bat文件 2. 编辑该文件输入一下脚本 Java代码 @echo off for %%i in (*.exe) do %%i /passive /norestart /nobackup 3. 将该脚本放置与补丁同一目录执行即可.

关于如何编写启动linux下的tomcat脚本问题

问题描述 关于如何编写启动linux下的tomcat脚本问题 每次启动tomcat,都需要进入到具体的路径下 /data/uficc/program/apache-tomcat-7.0.65/bin ,然后 ./startup.sh & 启动tomcat,需要重启是都是先kill掉进程后再次启动. 我的需求是:能不能编写个脚本,让我无论在那个路径下,只需要简单输入 :Manage stop tomcat 就可以停止tomcat服务,输入 Manage start tomcat 可以启动tomca

c++-自己编写的一个windows服务不能启动

问题描述 自己编写的一个windows服务不能启动 我用C++编写了一个简单的windows服务,服务的任务是服务启动后向文件中循环写入文字,我的服务可以安装,但是启动时会显示本地计算机上的 xx服务启动后停止,我的电脑加入了公司的域,请问跟加域有关系吗? 解决方案 你是不是把代码逻辑写在OnStart里面了?你需要在OnStart中启动一个线程,并且用死循环保持住线程,将真正的逻辑写在里面. 解决方案二: 当然,否则OnStart执行完,没有保持住的线程,程序就停了.你可以google一些别人