Ubuntu bash Small Script Help

1

Estou tentando executar o seguinte script bash, mas ele não exibe nada na janela do terminal e também não recebo nenhum erro. Eu estou tentando exibir o valor atual para ser mostrado na tela do terminal como a saída enquanto estiver usando a função interna quando eu executá-lo através da linha de comando.

#! /bin/bash

currentid()
{
return 608

echo builtin currentid "$@"

}

currentid
    
por Randy 10.06.2017 / 23:38

1 resposta

0

Suponho que você esteja tentando obter o pid de seu script e usá-lo como variável mais tarde? Se assim for, aqui estão algumas dicas:

  1. Você não precisa do comando builtin , pois currentid não é builtin até onde eu sei. Você pode ver o que o builtin gosta:

    $ help builtin
    builtin: builtin [shell-builtin [arg ...]]
    Execute shell builtins.
    
    Execute SHELL-BUILTIN with arguments ARGs without performing command
    lookup.  This is useful when you wish to reimplement a shell builtin
    as a shell function, but need to execute the builtin within the function.
    
    Exit Status:
    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is
    not a shell builtin..
    

    Você pode encontrar uma lista de todos os recursos incorporados com compgen -b .

  2. Eu vou dar um salto de fé aqui e acho que com currentid você está tentando obter o pid ou o Id do processo do script. Por favor, corrija-me se currentid se referir a outra coisa.

    Para obter o pid atual do seu script, você pode usar $$ ou $BASHPID . Você pode aprender mais sobre as diferenças no Manual de Referência do Bash . Não tenho certeza por que você está codificando um retorno de 608, mas se você quiser alterar o pid do seu script para isso, por favor, esclareça sua pergunta.

    Com isso em mente, seu script ficaria assim:

    #!/bin/bash
    printf "%s" "$$"
    

    Que imprime seu pid atual com segurança. Mas tenha em mente que você pode chamar $$ ou $BASHPID em seu script mais tarde para o que você quiser.

Algumas dicas mais gerais:

Boa sorte!

    
por Grayson Kent 11.06.2017 / 01:28