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
, poiscurrentid
não ébuiltin
até onde eu sei. Você pode ver o que obuiltin
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
. -
Eu vou dar um salto de fé aqui e acho que com
currentid
você está tentando obter opid
ou o Id do processo do script. Por favor, corrija-me securrentid
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 opid
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:
- Aqui está uma ótima resposta de nosso site irmão sobre o porquê usar
prinf
overecho
- 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!