Итак, я пытаюсь передать параметры сценарию оболочки bash через соединение сокета TCP-протокола python. Сценарий, выполняемый в оболочке bash, всегда срабатывает, хотя при печати переменной, передаваемой в os.system() или subprocess.call(), она выглядит правильно. Есть идеи? Небольшой кусок кода, который дает мне проблемы.Использование данных, полученных из сокета TCP [python]
while 1:
conn, addr = s.accept()
print 'Connected with ' + addr[0] + ':' + str(addr[1])
data = conn.recv(1024)
if not data:
break
data2 = data.rstrip('\n')
cmd = 'ls ' + data2
#os.system(cmd)
subprocess.call([cmd], shell=True)
print cmd
Вы должны быть конкретными о том, как он «бомбит». Что происходит, точно? –
Аналогичный вопрос [здесь] (http://stackoverflow.com/questions/15869158/python-socket-listening/16512082#16512082) – Noelkd
Hi Brian, Программа может найти двоичный файл и успешно запускать его в оболочке bash, однако, когда пытаясь добавить параметры для передачи в двоичный файл bash, двоичный код не правильно интерпретирует параметры, заставляя его возвращать код ошибки, запрограммированный на «недопустимый параметр» Использование «ls» в качестве примера: работает «ls» "работает, прохождение" -l "к нему не удается , когда я печатаю переменную cmd, она возвращает то, что я ожидаю работать" ls -l " – user2740987