Modificando scripts TDT padrão para usar -c em vez de $1

Modificando scripts TDT padrão para usar -c em vez de $1

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 $targetem 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:

Parâmetros posicionais

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, $2o segundo, $3o 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.

informação relacionada