Unten habe ich eine Zeichenfolge mit Zeilenumbrüchen, diese Zeichenfolge ist der Inhalt einer Bash-Datei. Ich habe mich gefragt, ob es eine Möglichkeit gibt, diesen Inhalt auszuführen, ohne die Bash-Datei zu erstellen. Ich möchte etwas wie unten tun, wo ich den Inhalt einfach an den sh
Befehl übergebe. Aber das blies mit dem Fehler unten auf.Erstellen eines untergeordneten Prozesses einer Bash-Datei in Knoten
let string = "\necho \'hello-world\'\n"
execAsync(`${string} | sh`)
Ich weiß, ich kann eine temporäre Datei/exec es mit dem Pfad entspricht das aktuelle Arbeitsverzeichnis/löschen Sie die Datei erstellen. Aber ich würde lieber nicht die Schwierigkeiten durchgehen, wenn es eine Möglichkeit gibt, das Skript auszuführen, ohne eine Datei zu erstellen.
Fehler:
{ Error: Command failed:
echo 'hello-world'
| sh
/bin/sh: -c: line 2: syntax error near unexpected token `|'
/bin/sh: -c: line 2: ` | sh'
at ChildProcess.exithandler (child_process.js:207:12)
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:191:7)
at maybeClose (internal/child_process.js:852:16)
at Socket.<anonymous> (internal/child_process.js:323:11)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at Pipe._handle.close [as _onclose] (net.js:492:12)
cause:
{ Error: Command failed:
echo 'hello-world'
| sh
/bin/sh: -c: line 2: syntax error near unexpected token `|'
/bin/sh: -c: line 2: ` | sh'
at ChildProcess.exithandler (child_process.js:207:12)
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:191:7)
at maybeClose (internal/child_process.js:852:16)
at Socket.<anonymous> (internal/child_process.js:323:11)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at Pipe._handle.close [as _onclose] (net.js:492:12)
killed: false,
code: 2,
signal: null,
cmd: '\necho \'hello-world\'\n | sh' },
isOperational: true,
killed: false,
code: 2,
signal: null,
cmd: '\necho \'hello-world\'\n | sh' }
'lassen string = "\ Nechos \ 'Hallo Welt \'"' - man kann nicht eine neue Zeile in einem Shell mit 'Anfang |' – PSkocik