Ich bin mit einem wirklich seltsamen Problem auf einem Bash-Skript konfrontiert, und würde gerne wissen, ob jemand dieses Problem bereits hatte. Mein Skript wirft grundsätzlich zufällige "command not found" Fehler in einer bestimmten Zeile, aber nicht immer mit dem gleichen "Befehl". Hier ein Beispiel:Zufälliges Verhalten von "Befehl nicht gefunden" in Bash-Skript, das nur einen Teil des Befehls
./myscript.sh: line 193: e: command not found
./myscript.sh: line 194: iles: command not found
./myscript.sh: line 194: ge_files: command not found
Und hier sind die inkriminierten Linien
184 for SERVER in `echo $SERVERS` ; do
185 - 192 Do some stuff...
193 done
194 merge_files
(merge_files ist eine Funktion, die zuvor in dem Skript erklärt wurde.)
So das Problem scheint zu sein, dass es diese Zeilen von Zeit zu Zeit spaltet? Es scheint wirklich zufällig, da es nicht immer bricht, nur manchmal (ich denke, etwas falsch in der Eingabe des Skripts? Ich analysiere Protokolle)
Hat jemand jemals das konfrontiert?
versuchen Sie, mit dem kleinstmöglichen Skript zu kommen, das das Problem reproduziert. –
bearbeiten (und speichern) Sie das Skript, während es ausgeführt wird? –
schalten Sie das Shell-Debugging ein, d. H. 'Set -vx', dann sehen Sie die Werte der Variablen. Auch wenn Ihre Quelle für '$ SERVERS' aus einer Datei stammt, wird diese Datei auf MSWindows/DOS erstellt? Wenn ja, benutzen Sie 'dos2unix', um '^ M \ Zeichen, die Probleme verursachen könnten, zu entfernen. Viel Glück. – shellter