
Existem muitos programas dtrace excelentes por aí e alguns deles exigem que um PID seja passado para eles, para que possam rastrear esse PID. Dentro dos scripts dtrace esse argumento é armazenado em $1. É possível simplesmente substituir $1 por $target e -c no cmdline, e o restante da lógica do script permanece o mesmo?
É tão simples quanto acho que deveria ser?
Responder1
Você teria que preencher a variável $target
em seu script, como por exemplo target=$1
. Simplesmente substituí-lo não será suficiente e não funcionará.
Vamos ver o que podemos encontrar na documentação sobre isso:
Argumentos passados para o script a partir da linha de comando[1]:
$0, $1, $2, $3 ...
$0
é o nome do próprio script,$1
é o primeiro argumento,$2
o segundo,$3
o terceiro e assim por diante.[2]Depois de$9
, os argumentos devem ser colocados entre colchetes, por exemplo,${10}, ${11}, ${12}
.As variáveis especiais
$*
e$@
denota todos os parâmetros posicionais.
O que você pode fazer, entretanto, é algo semelhante a isto para torná-lo mais legível dentro do script:
#!/bin/sh
target=$1
Mas isso significaria aninhar variáveis/dados, o que é visto pela maioria das pessoas como uma má prática.