Мне нужно запустить команду оболочки bash <(curl -L https://get.acme.sh)
в QProcess, но она показывает /bin/bash: <(curl: No such file or directory
ошибку, я запускаю оболочку cmd, хорошо работает.
Код
class Process:
def __init__(self):
self.p = QProcess()
self.p.setProcessEnvironment(QProcessEnvironment.systemEnvironment())
self.p.finished.connect(self.on_process_finished)
self.p.readyReadStandardOutput.connect(self.on_stdout)
self.p.readyReadStandardError.connect(self.on_stderr)
def start(self, program: str, arguments: typing.List[str] = []):
self.p.setProgram(program)
self.p.setArguments(arguments)
self.p.start(program)
self.p.waitForFinished(-1)
def on_process_finished(self, exitCode, exitStatus):
arguments = ' '.join(self.p.arguments())
process_str = f'{self.p.program()} {arguments}'
print_finish(f'Process: [{process_str}] execute finish!!!')
def on_stdout(self):
data = bytes(self.p.readAllStandardOutput())
data_str = data.decode('utf-8')
print(data_str)
def on_stderr(self):
data = bytes(self.p.readAllStandardError())
data_str = data.decode('utf-8')
print(data_str)
p = Process()
cmd = "bash <(curl -L https://get.acme.sh)"
p.start(cmd)