电脑技术学习

对话 UNIX: Squirrel--可移植的 shell 和脚本语言

dn001

  执行完比较后,可以迭代结果。如果在任何时候不再需要编译后的正则表达式,则使用 regfree() 删除它。还有一个 regfreeall() 函数可以处理所有已编译表达式所持有的所有资源。

  Squirrel Shell 的限制

  在理想情况下,相同的编程逻辑将应用到 Unix、Linux 和 Windows 中,并且效率至少和以前一样高,这样程序员会更加高兴。可惜操作系统各不相同,您经常需要为了某个特定系统而求助于定制代码。

  在这些情况下,无论是 Squirrel Shell 还是您都无法脱离平台,Squirrel Shell 提供了一个方便的函数来探测操作系统,这样代码就可以适当的执行。

  清单 6 展示了如何使用 platform() 函数作出决策。该函数始终返回一个值,但是该值可能是 unknown。

  清单 6. platform() 函数生成操作系统类型

 
print( "Made by ... "); 
 
local platform = platform(); 
 
switch ( platform ) { 
 case "linux": 
  printl( "Linus." ); 
  break; 
 
 case "Macintosh": 
  printl( "Steve." ); 
  break; 
 
 case "win32": 
 case "win64": 
  printl( "Bill." ); 
  break; 
 
 default: 
  printl( "Unknown" ); 
} 

  您可以通过 Squirrel Shell 环境变量 PLATFORM 查找当前平台的类型:

> printl( PLATFORM ); 
linux 

  环境变量 CPU_ARCH 生成处理器,shell 将针对该处理器进行编译:

> printl( CPU_ARCH ); 
x86 

  结束语

  Squirrel Shell 的其他函数将管理文件、处理环境和执行策略。实际上,它的三角学内置函数就有 20 余种。Version 2.0 目前正在规划之中,并且将包含更多类、对 Unicode 的支持、改进的交互模式,以及一个模块化的插件架构。

  Squirrel Shell 并不算得上一种交互式 shell,但是这没关系。在这方面已经出现了很多选择。作为一种脚本运行程序,Squirrel Shell 要比其同类出色许多。其数据结构要比传统 shell 更加强大,它的语法简单易懂,其底层虚拟引擎支持从枚举类型到线程等所有内容。Squirrel 引擎也很小巧,不超过 6000 行代码。您甚至可以将完整的 Squirrel 嵌入到另一个应用程序中。

  当您需要为两个平台编写代码时,请尝试使用 Squirrel Shell!它使您能够轻松编写自己的代码。

标签: