Изменение стандартных скриптов DTT для использования -c вместо $1

Изменение стандартных скриптов DTT для использования -c вместо $1

Существует множество отличных программ dtrace, и некоторые из них требуют передачи им PID, чтобы они могли отслеживать этот PID. Внутри скриптов dtrace этот аргумент хранится в $1. Возможно ли просто заменить $1 на $target и -c в командной строке, а остальная логика скрипта останется прежней?

Все ли так просто, как я думаю?

решение1

Вам придется заполнить переменную $targetв вашем скрипте, как например target=$1. Простая замена будет недостаточной и не будет работать.

Давайте посмотрим, что мы можем найти в документации по этому поводу:

Позиционные параметры

Аргументы, передаваемые скрипту из командной строки[1]:$0, $1, $2, $3 ...

$0— имя самого скрипта, $1— первый аргумент, $2второй, $3третий и т. д.[2]После $9аргументы должны быть заключены в скобки, например, ${10}, ${11}, ${12}.

Специальные переменные$*и$@обозначим все позиционные параметры.

Однако вы можете сделать что-то похожее на это, чтобы сделать скрипт более читабельным:

#!/bin/sh
target=$1

Но это означало бы вложение переменных/данных, что большинством программистов считается плохой практикой.

Связанный контент