寻找脚本

寻找脚本

我想将 KSH 脚本称为 KSH 脚本。

脚本 1 执行以下操作:

  1. 循环遍历数据库服务器列表
  2. 执行查询
  3. 将每个数据库服务器的查询输出附加到 txt 文件

脚本 2 执行以下操作:

  1. 创建一个 HTML 文件,在 HTML 文件中显示文本文件中的每一行

  2. 将带有查询结果的 HTML 文件通过电子邮件发送到收据列表

    用法:KSH backup_report.ksh qry_rslt_textfile.txt
    (txt文件包含来自每个服务器的查询结果)

以下语法正确吗?

#! /bin/ksh
< Start of Script 1 Code>
.
.
.
< End of Script 1 Code>

< Start of Script 2 Code - Call Script 2>
/sybase/dba/backup_report.ksh qry_rslt_textfile.txt
<End of Script 2 Code>

答案1

是的 - 假设脚本具有执行权限,这将执行您想要的操作。实际上,它会将第二个脚本调用为第一个脚本的最后一个命令,但这会造成技术上的麻烦,您可能不需要担心。

答案2

要从另一个程序(或脚本)调用脚本,您必须注意以下事项:

  1. 必须找到脚本
  2. 脚本必须有执行权限
  3. 该脚本必须包含对其解释器的提示

寻找脚本

查看。您已经包含了脚本的完整路径。另一种方法是在脚本 1 顶部的 PATH 变量中包含 /sybase/dba:

PATH=/sybase/dba:$PATH

正确的权限

该脚本需要所有可能需要运行该脚本的用户类别的执行权限。

对于大多数解释器来说,执行权限是不够的;所选口译员还需要能够脚本的代码。

$ ls -l  /sybase/dba/backup_report.ksh
-rwxr-x---   1 Henk     sys           805 Apr  3 07:00 /sybase/dba/backup_report.ksh

正确的口译员

脚本不直接执行。内核需要一个提示来告诉它使用哪个解释器。这是通过包含#!(哈希棒) 在第一行标记,后面是解释器的路径:

#! /bin/ksh

确保您知道自己ksh住在哪里并插入正确的路径。

最后说明

还要确保您知道哪个版本的ksh.如今,kshimplicitksh93仍在积极开发中,并可在大多数平台上使用。

相关内容