Erreur survenue lors de l'utilisation de l'instruction if et de l'instruction while Je ne suis pas sûr, alors je vais laisser la cause et la solution.
-Il peut y avoir un espace perdu (parfois un espace pleine largeur) dans ou autour de la ligne indiquée. -S'il y a un espace vide, un message d'erreur peut s'afficher car le traitement normal ne peut pas être effectué. Ce message d'erreur a plusieurs causes, donc si vous ne pouvez pas le résoudre, veuillez consulter d'autres articles.
Cette fois, la commande qui a identifié la cause est répertoriée au bas de l'article, veuillez donc la vérifier.
Fichier
1 #!/bin/bash
2
3 read -p 'Veuillez saisir le nom du fichier' 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 'Il n'y a pas une telle commande'
56 exit 1
57 fi
58 else
59 echo 'Le nom de fichier que vous avez entré n'existe pas'
60 exit 1
61 fi
ex4.sh: 44 lignes: [: 100: opérateur mononome attendu
Puisqu'il y avait de «l'espace perdu» dans une partie du fichier appelé, l'espace a également été calculé pendant le traitement. J'ai un message d'erreur
J'ai exécuté la commande suivante pour identifier la cause. Cette commande est "vous pouvez vérifier quel type de commande est exécuté".
commande bash
bash -x nom de fichier
· 1. Supprimer "un seul opérateur de terme est attendu" 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. Erreur lors de la spécification de la partie numérique du tableau avec une variable dans bash https://okwave.jp/qa/q8362685.html