
世の中には素晴らしい dtrace プログラムが数多くありますが、そのいくつかでは、PID をトレースするために、その PID を渡す必要があります。dtrace スクリプト内では、その引数は $1 に格納されます。コマンドラインで $1 を $target と -c に置き換えるだけで、スクリプトのロジックの残りは同じままにすることは可能ですか?
それは私が思うほど単純なものでしょうか?
答え1
$target
たとえば、スクリプト内で変数を設定する必要がありますtarget=$1
。単に置き換えるだけでは不十分で、機能しません。
これに関するドキュメントで何が見つかるか見てみましょう:
コマンドラインからスクリプトに渡される引数[1]:
$0, $1, $2, $3 ...
$0
はスクリプト自体の名前、$1
は最初の引数、$2
2 番目、$3
3 番目、というように続きます。[2]の後の$9
引数は、 のように括弧で囲む必要があります${10}, ${11}, ${12}
。特殊変数
$*
そして$@
すべての位置パラメータを示します。
ただし、スクリプト内で読みやすくするために、次のような操作を行うことができます。
#!/bin/sh
target=$1
しかし、それは変数/データをネストすることを意味しますが、これはほとんどのコーディング者にとって悪い習慣と見なされます。