Impossível rastrear erro

1

Durante a execução do meu programa, encontrei os seguintes erros

today.ksh[36]: test: 0403-004 Specify a parameter with this command.
sed: 0602-419 Cannot find or open file /home/tmp/filename.
today.ksh[37]: test: 0403-004 Specify a parameter with this command.
today.ksh[24]: test: 0403-021 A ] character is missing.

mas não consigo entender o significado do seguinte:

  • sed: 0602-419 o que significa 0602-419?
  • today.ksh [37] o que é 37 indica? e test: 0403-004 o que isso significa?

    Em suma, os números variam como 'teste: 0403-004' que está sendo exibido o que eles significam? como pode ser útil durante a depuração no ksh?

por Aman 02.04.2015 / 13:24

1 resposta

1

Bem-vindo ao AIX.

Uma das coisas que é onipresente nos sistemas operacionais da IBM é a ideia de que todas as mensagens do sistema possuem códigos alfanuméricos de identificação. As mensagens podem ser traduzidas em diferentes idiomas, mas os códigos permanecem os mesmos. E normalmente, como parte da documentação da IBM, existe um manual de referência onde é possível procurar essas mensagens pelo código.

No OS / 2 e OS / 400, os códigos assumem a forma de um designador de três letras instalação e um número de mensagem de quatro dígitos . (Os usuários do OS / 2 lembrarão de coisas como SYS0002 e a capacidade de procurar esses códigos na linha de comando com os comandos help e helpmsg .) No AIX, eles assumem a forma de um sistema operacional de quatro dígitos. número do componente do sistema e um número de mensagem de três dígitos .

Portanto, o 0403-004 não é um "intervalo". É um código de mensagem, para o número de componente 0403, número de mensagem 004. O componente 0403 é o Korn Shell. O componente 0602 é o grupo de ferramentas de edição de texto do UNIX: vi , ex , ed , sed e awk .

E, sim, o AIX tem um grande manual de referência listando todos esses códigos.

No entanto, não é exatamente detalhado em seu tratamento das mensagens. (Em comparação, o recurso de ajuda do OS / 2 tem uma descrição detalhada e ação para a maioria das mensagens SYS vistas na linha de comando.) Portanto:

  • 0403-004: Você provavelmente esqueceu de colocar aspas em torno de uma expansão de variável, resultando em uma expansão para nada quando a variável não é definida e, portanto, um erro de sintaxe para o comando test .
  • 0403-021: Quando chamado como [ , o comando requer que o argumento final seja um ] . Geralmente, esse erro é o resultado do esquecimento de tornar o caractere final ] uma palavra separada por conta própria.

Leitura adicional

por 04.04.2015 / 23:57