次の変数は、位置パラメータを取得するために使用されます。
$1, $2, $3, etc.
$@
$#
ただし、これらはスクリプトの位置パラメーターと関数の位置パラメーターの両方に使用されます。
これらの変数を関数内で使用すると、関数の位置パラメーターが得られます。
関数内からスクリプトの位置パラメーターを取得する方法はありますか?
いいえ、直接ではありません。関数パラメーターがそれらをマスクするためです。ただし、Bashまたはkshでは、スクリプトの引数を別の配列に割り当てて、それを使用することができます。
#!/bin/bash
ARGV=("$@")
foo() {
echo "number of args: ${#ARGV[@]}"
echo "second arg: ${ARGV[1]}"
}
foo x y z
配列の番号付けはゼロから始まるので$1
、${ARGV[0]}
などに進むことに注意してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加