Fehler, der in der Übung mit der if-Anweisung und der while-Anweisung aufgetreten ist Ich bin mir nicht sicher, also werde ich die Ursache und Lösung verlassen.
Dieses Mal ist der Befehl, der die Ursache identifiziert hat, am Ende des Artikels aufgeführt. Überprüfen Sie ihn daher bitte.
Datei
1 #!/bin/bash
2
3 read -p 'Bitte geben Sie den Dateinamen ein' fh
4 if [ -f $fh ];
5 then
6 read -p 'sum, avg, min, max, exit ' command
7 if [ $command = 'sum' ];
8 then
9 sum=0
10 while read p;
11 do
12 sum=$(( sum + p ))
13 done < $fh
14 echo SUM: $sum
15 exit 0
16 elif [ $command = 'avg' ];
17 then
18 sum=0
19 count=0
20 while read p;
21 do
22 sum=$(( sum + p ))
23 count=$(( count + 1 ))
24 done < $fh
25 echo AVG: $(( sum / count ))
26 exit 0
27 elif [ $command = 'min' ];
28 then
29 min=101
30 while read p;
31 do
32 if [ $min -gt $p ];
33 then
34 min=$p
35 fi
36 done < $fh
37 echo MIN: $min
38 exit 0
39 elif [ $command = 'max' ];
40 then
41 max=0
42 while read p;
43 do
44 if [ $max -lt $p ];
45 then
46 max=$p
47 fi
48 done < $fh
49 echo MAX: $max
50 exit 0
51 elif [ $command = 'exit' ];
52 then
53 exit 0
54 else
55 echo 'Es gibt keinen solchen Befehl'
56 exit 1
57 fi
58 else
59 echo 'Der von Ihnen eingegebene Dateiname existiert nicht'
60 exit 1
61 fi
ex4.sh: 44 Zeilen: [: 100: erwarteter mononomischer Operator
Da in einem Teil der aufgerufenen Datei "Speicherplatz verschwendet" wurde, wurde der Speicherplatz auch während der Verarbeitung berechnet. Ich habe eine Fehlermeldung erhalten
Ich habe den folgenden Befehl ausgeführt, um die Ursache zu identifizieren. Dieser Befehl lautet "Sie können überprüfen, welche Art von Befehl ausgeführt wird".
Bash-Befehl
bash -x Dateiname
・ 1. Unterdrücken Sie "ein einzelner Termoperator wird erwartet" https://www.bee-planetz.com/blog/%E3%80%8C%E5%8D%98%E9%A0%85%E6%BC%94%E7%AE%97%E5%AD%90%E3%81%8C%E4%BA%88%E6%9C%9F%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%8D%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B/
・ 2. Fehler beim Angeben des Nummernteils des Arrays mit einer Variablen in bash https://okwave.jp/qa/q8362685.html