Modificar scripts TDT estándar para usar -c en lugar de $1

Modificar scripts TDT estándar para usar -c en lugar de $1

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

Parámetros posicionales

Argumentos pasados ​​al script desde la línea de comando[1]:$0, $1, $2, $3 ...

$0es el nombre del script en sí, $1es el primer argumento, $2el segundo, $3el 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.

información relacionada