
Existen muchos programas dtrace excelentes y algunos de ellos requieren que se les pase un PID para poder rastrear ese PID. Dentro de los scripts de dtrace, ese argumento se almacena en $1. ¿Es posible simplemente reemplazar $1 con $target y -c en la línea cmd, y el resto de la lógica del script sigue siendo la misma?
¿Es tan simple como creo que debería ser?
Respuesta1
Tendrías que completar la variable $target
dentro de tu script como por ejemplo target=$1
. Simplemente reemplazarlo no será suficiente y no funcionará.
Veamos qué podemos encontrar en la documentación sobre esto:
Argumentos pasados al script desde la línea de comando[1]:
$0, $1, $2, $3 ...
$0
es el nombre del script en sí,$1
es el primer argumento,$2
el segundo,$3
el tercero, etc.[2]Después de$9
, los argumentos deben ir entre corchetes, por ejemplo,${10}, ${11}, ${12}
.Las variables especiales
$*
y$@
denota todos los parámetros posicionales.
Sin embargo, lo que puedes hacer es algo similar a esto para hacerlo más legible dentro del script:
#!/bin/sh
target=$1
Pero eso significaría anidar variables/datos, lo que la mayoría de la gente considera una mala práctica.