私は通常質問をしません&助けを求める人はいますが、現在は約1700行の比較的大きなbashスクリプトを書いています。私は "$ *"を使ってある関数から別の関数にデータをプッシュするために多数の関数を利用しています。私はそれが我々が持つdealing何であるかを理解することはおそらく最高だと思い
case "$1" in
-s|--scan) VersionDump "[email protected]"; DumpArray "$*"; exit 0;;
-t|--test) VersionDump "[email protected]"; Virtual "$*"; exit 0;;
-e|--erase) VersionDump "[email protected]"; Clear "$*"; exit 0;;
-l|--load) Loadit "$*"; exit 0;;
-i|--info) ThumbInfo "$*"; exit 0;;
-h|--help|-\?) Help "$2"; exit 0;;
-v|--version) VersionDump "[email protected]"; exit 0;;
*) Help; exit 0;;
esac
、上のより多くの情報があります:「$ 1」は、スクリプトのの一番最後にcase文で処理されるまで、スクリプト全体はスクワットを行います私のフォーラム。私は、 "$ *"と "$ @"を1回のパスで失敗したアレイに戻すようにしようとしたところで突き刺しました。
# Optional switch - useful for me and the end user.
DEBUG=$(echo "$*" | grep -i "debug")
if [[ "$DEBUG" ]]; then
Center "${txtred}DEBUG INFORMATION"
printf "DEBUGGING Function:\t%s\n" "$FUNCNAME"
printf "PASSED TO FUNCTION *:\t%s\n" "${@}"
echo -e "1:$1 2:$2 3:$3 4:$4 5:$5 6:$6 7:$7 8:$8"
echo -en "Caller [LINE]/APP: "
caller
FullBar
echo -en "${txtrst}"
fi
私は完全に全体を再書いています:私は、コマンドは単語「デバッグ」は、コマンドラインで検出された場合に機能する関数から渡されるように、私は分析することができ、各機能の「デバッグ」のコードを書かれています依存関係を削除するスクリプト。はい、私はコード全体を提供していないことを知っています。私は疑問があると確信しています。スクリプト全体はShellCheckedであり、エラーは0です。私はもはや使用しない変数などいくつかあります。私はdeter-mentalとは考えません。彼らは(コマンドが渡される)ように見えるよう
物事は常にではありません。
./ultimate-edition-thumbos_1.1.4_all/bin/thumbos --load ../wip/ultimate-edition-5.0-x64-lite-xfce.iso sdg debug
結果:
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ DEBUG INFORMATION ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
DEBUGGING Function: Loadit
PASSED TO FUNCTION *: --load ../wip/ultimate-edition-5.0-x64-lite-xfce.iso sdg debug
1:--load ../wip/ultimate-edition-5.0-x64-lite-xfce.iso sdg debug 2: 3: 4: 5: 6: 7: 8:
Caller [LINE]/APP: 1688 ./ultimate-edition-thumbos_1.1.4_all/bin/thumbos
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
どこなど、私の$ 2がありますか?私は何か悪いことをしていますか?
関連http://unix.stackexchange。COM/Q/38906分の41571 – cuonglm