私と教育に合わせてdebootstrapを書き直しています。 「functions」ファイルの対話型コードで「shift」コマンドを使用するのはなぜですか? 「shift」を使用するために送信されるパラメータはあまりありません。私が知っている限り、関数パラメータは関数内でのみアクセスできます。
例:
error () {
# <error code> <name> <string> <args>
local err="$1"
local name="$2"
local fmt="$3"
shift; shift; shift
if [ "$USE_DEBIANINSTALLER_INTERACTION" ]; then
(echo "E: $name"
for x in "$@"; do echo "EA: $x"; done
echo "EF: $fmt") >&4
else
(printf "E: $fmt\n" "$@") >&4
fi
exit $err
}
答え1
これら3つの変換はパラメータからエラーコード、名前、および文字列を削除するため、残りのパラメータは9行のスクリプトのループに便利に配置できます$@
。for