Unerwartetes Ergebnis bei Verwendung eines Pipe-Operators in einer Shell-Variablen
466
hebbo
Ich habe einen Prozess, der einige gezippte Ausgaben an die Standardausgabe sendet. Was ich mit dieser Ausgabe mache, ist Pipe und sende sie durch einen SSH-Tunnel an einen anderen Computer, wo sie in eine Datei gespeichert wird.
Und dann rufen Sie das Skript auf, ich sehe Müll auf der Konsole, von dem ich nur annehmen kann, dass es sich um die Ausgabe handelt myapp, und dann diese
Ich vermute, dass die Shell die $OUTPUTSektion als Argument an sie geschickt hat, myappanstatt darauf zu wirken. Diese "unbekannten Parameter" stammen also myappnicht von der Shell.
Wie kann ich das beheben?
Haben Sie / bin / bash anstelle von / bin / sh versucht?
Sirex vor 6 Jahren
0
Nein, das System, an dem ich arbeite, hat keine Bash. Ich muss die Arbeit auf Asche beschränken
hebbo vor 6 Jahren
0
Dann sollten Sie `bash 'nicht als Tag verwenden.
AFH vor 6 Jahren
0
ok ... entfernte es. Aber ich habe mich gefragt, ob mein Problem nicht spezifisch für Asche ist und tatsächlich auch in Bash vorkommen kann. Also wollte ich ein breiteres Publikum erreichen. An diesem Punkt bin ich auch nicht dort, wo das Problem liegt.
hebbo vor 6 Jahren
0
2 Antworten auf die Frage
0
hebbo
Ok .... ich habe gefunden, was ich brauchte. Es war der evalBefehl. Dies war in der Tat beantwortet hier .
Das Skript kann also folgendermaßen geändert werden:
Ihre Shell analysiert jede Befehlszeile in einer bestimmten Reihenfolge. Wenn es trifft $APP $OPTS $OUTPUT, sieht es, dass es keinen Pipe-Operator gibt; Später werden diese Variablen erweitert und |erscheinen, aber es hat keine besondere Bedeutung, da es dafür bereits zu spät ist.