Como chamar um script KSH de outro script KSH

0

Eu quero chamar um script KSH de um script KSH.

O script 1 executa o seguinte:

  1. Faz um loop através de uma lista de servidores de banco de dados
  2. Perfroms uma consulta
  3. Acrescenta saída da consulta de cada servidor de banco de dados para um arquivo txt

O script 2 realiza o seguinte:

  1. Cria um arquivo HTML que exibe cada linha no arquivo de texto    em um arquivo HTML

  2. Envia por e-mail o arquivo HTML com os resultados da consulta para uma lista de recibos

    Uso: KSH backup_report.ksh qry_rslt_textfile.txt
          (txtfile contém resultados da consulta de cada servidor)

A sintaxe a seguir está correta?

#! /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>
    
por Victor Flores 01.04.2013 / 19:36

2 respostas

2

Sim - desde que o script tenha permissão de execução, isso fará o que você deseja. Ele irá, na verdade, chamar o segundo script como o último comando do primeiro script, mas isso está dividindo um fio técnico que você provavelmente não precisará se preocupar.

    
por 01.04.2013 / 19:42
0

Para chamar um script de outro programa (ou script), você deve cuidar de uma lista de coisas:

  1. O script deve ser encontrado
  2. O script deve ter permissões de execução
  3. O script deve incluir uma sugestão para seu intérprete

Encontrando o script

Verifique. Você já incluiu o caminho completo para o script. Uma alternativa é incluir / sybase / dba na variável PATH no topo do script 1:

PATH=/sybase/dba:$PATH

Permissões corretas

O script precisará de permissões de execução para todas as categorias de usuários que precisem executá-lo.

Para a maioria dos intérpretes, as permissões de execução não são suficientes; o intérprete escolhido também precisa ser capaz de ler o código do script.

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

O intérprete certo

Os scripts não são executados diretamente. O kernel precisa de uma dica para informar qual interpretador usar. Isso é feito incluindo uma marca #! ( hashbang ) na primeira linha, seguida do caminho para o intérprete:

#! /bin/ksh

Garanta que você sabe onde o seu ksh mora e insira o caminho certo.

Nota final

Verifique também se você sabe qual versão de ksh . Atualmente, ksh implica em ksh93 , que ainda está ativamente desenvolvido e disponível na maioria das plataformas.

    
por 03.04.2013 / 07:18

Tags