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:
-
Você não precisa do comando
builtin, poiscurrentidnão ébuiltinaté onde eu sei. Você pode ver o que obuiltingosta:$ 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. -
Eu vou dar um salto de fé aqui e acho que com
currentidvocê está tentando obter opidou o Id do processo do script. Por favor, corrija-me securrentidse referir a outra coisa.Para obter o
pidatual 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 opiddo 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
pidatual com segurança. Mas tenha em mente que você pode chamar$$ou$BASHPIDem seu script mais tarde para o que você quiser.
Algumas dicas mais gerais:
- Aqui está uma ótima resposta de nosso site irmão sobre o porquê usar
prinfoverecho - O Guia de Referência do Bash é incrível para definir todas as opções disponíveis.
- O Greg's Bash Wiki tem um excelente exemplo de código real e melhores práticas.
Boa sorte!