文case文無限ループ場合のawkを使用して関数呼び出し。
1.最初のユーザー管理ファイル(INFO.TXT)を作成
私 passwdの お金 WS 123 30000 QQ 456 30000
2.銀行システム(bank.sh)を作成します。
#!/ binに/ bashの MENU1 = " =============== = 1。ログイン= = 2番出口= =============== ご使用のオペレーティング・選択してください[ 1 | 2 ]:" MENU2 = " ++++++++++++++++ +++ 1クエリ+++ +++ 2。預金+++ +++ 3。引き出し+++ +++ 4。転送+++ +++ 5番出口+++ ++++++++++++++++ お使いのオペレーティングを選択してください[ 1 | 2 | 3 | 4 | 5 ]:" ログイン(){ 読む -p 「:口座番号入力」のアカウントを 読む -p " :パスワードを入力し、" パスワード のpasswd = ' のawk -vアカウントアカウントは$を= ' {$ IF 2印刷(== $アカウント1。)} ' ./ 情報.txt` のIF [-Z " $ passwdの" ]ビューパスワードは空白であるかどうか。 そして、 エコー 「アカウントのパスワードが間違っている」 のelif [$パスワード== $のpasswdの] その後、 エコー 「以降のログイン.... ..... 」 SLEEP 1つの エコー 「ログイン成功」 SLEEP 1 クリア 他 エコー 「アカウントのパスワードが間違っている」 Fiの } クエリ(){ マネー = ` awkの -vアカウントアカウント= $ ' {IF(== $アカウント1。)3プリント$。} ' ./ 情報.txt` エコー " 経常収支:$マネー" } storemoney(){ 読む -p 「預金額を入力します。」VAR お金 = ` awkの -vアカウント= $アカウント' {場合($ 1 ==アカウント)が$ 3印刷} ' ./ 情報を.txt` all_money = $(($お金+ $のVAR)) SED -i " / $アカウント/ S / $お金/ $のall_money / " ./ 情報の.txt 質問 } お金を得る(){ 読む -p 「預金額を入力します。」VAR お金 = ` awkの -vアカウント= $アカウント' {場合($ 1 ==アカウント)が$ 3印刷} ' ./ 情報を.txt` all_money = $(($ money- の$ VAR)) のsed -i " / $アカウントを/ sの/ $お金/ $のall_money / " ./ 情報の.txt 質問 } forwardmoney(){ 読む -p " 入力転送アカウント:" NEW_NAME のIF のawk -v NEW_NAMEアカウント= $ ' {IF(== $のNEW_NAME 1。)1プリント$。} ' ./ 情報の.txt&>は/ dev / nullに 、次に 読む -p " 入力転送量を:「for_money MONEY1 = ` awkの -vアカウント= $アカウント' {($ 1 ==アカウント)$ 3印刷があれば} ' ./ 情報が.txt` 場合は、[$ MONEY1 - LTの$のfor_money] その後、 エコー " !不足余额" 他 all_money1 = $( ($ money1- $ for_money)) SED -i " / $アカウント/ S / $ MONEY1 / $ all_money1 / " ./ 情報の.txt money2 = ` awkのアカウントは= $ NEW_NAME -v ' {場合($ 1 ==アカウント)$ 3印刷} ' ./ 情報.txt` all_money2 = $(($ money2 + $ for_money)) SED -i " / $ NEW_NAME / sの/ $ money2 / $ all_money2 / " ./ 情報.TXT エコー " 转账成功を" 質問 FI 他 エコー 「!転送アカウントが存在しないことを確認してください」 Fiを提供して } 一方で 真が 行う 明確な 読み取り -p " $ MENU1を" NUM1 場合は [$はNUM1 -eq 1 ] その後、 ログイン しながら、 真 ん 読ん -p " $ MENU2を" num2の ケースの$ NUM2 中 1 ) 質問 ;; 2 ) storemoney ;; 3 ) お金を得る ;; 4 ) forwardmoney ;; 5 ) ブレーク ;; * ) エコー 「正しい番号を選択してください。」 ;; ESACは 行わ のelif [$ NUM1 -eq 2 ] その後、 出口 他 エコー 「正しい数を選択し、」 Fiの DONE
成功裏に着陸した後、現在のインターフェースに入りました