在 UNIX 上执行 SYSTEM 语句

在 UNIX™ 平台的 SPL 过程中,评估为有效 UNIX 操作系统命令的规范必须紧跟在 SYSTEM 关键字之后。

这两个程序片段使用 SPL 的 SYSTEM 语句向系统管理员发送消息:

使用 SYSTEM 语句发送邮件

在 SPL 例程的以下示例中的 SYSTEM 语句可使 UNIX 操作系统将邮件消息发送给系统管理员,他的用户 ID 是 headhoncho
CREATE PROCEDURE sensitive_update()
          ...
          LET mailcall = 'mail headhoncho < alert';
          -- code to execute if user tries to execute a specified
          -- command, then sends email to system administrator
          SYSTEM mailcall;
          ...
          END PROCEDURE; -- sensitive_update
可以使用双竖线符号(||)将表达式与 SYSTEM 语句连接起来,如以下示例中所示:
CREATE PROCEDURE sensitive_update2()
          DEFINE user1 char(15);
          DEFINE user2 char(15);
          LET user1 = 'joe';
          LET user2 = 'mary';
          ...
          -- code to execute if user tries to execute a specified
          -- command, then sends email to system administrator
          SYSTEM 'mail -s violation' || user1 || ' ' || user2
          || '< violation_file';
          ...
          END PROCEDURE; --sensitive_update2 

在以上两个示例中,空格分隔命令行的元素,因此 SYSTEM 关键字后面的表达式计算为符合操作系统 mail 实用程序的语法要求的字符串。