У меня есть программа dbot, который работает в командной строке человечности. Если из его каталога, названного dbot, я ввожу в командную строку с моей клавиатуры "./dbot.sh какую-либо команду", это работает и делает то, что я хочу.
Таким образом, это работает ~/dbot$./dbot.sh anycommand
Я - новичок и записал программу python 3 tragic.py, который находится в том же каталоге, названном dbot.
Если из командной строки человечности я выполняю tragic.py в фоновом режиме ~/dbot$ python3 tragic.py и затем если я копирую и вставляю./dbot.sh anycommand затем, это работает, и dbot делает то, что я хочу. Это должно быть в фоновом режиме, или команда не будет работать при вставке так я использую и.
Однако я хочу, чтобы моя программа Python tragic.py распечатала на командную строку./dbot.sh anycommand так, чтобы команда была дана к dbot так же, как если бы я ввел его или вставил его. Однако это не работает или в фоновом режиме или передний план.
Я попытался использовать нормальный оператор печати и sys.stdout.write () и с и с sys.stdout.flush (), но без удачи
Как я могу заставить dbot отвечать на команду, распечатанную tragic.py в командной строке человечности. Я не понимаю, почему, когда я ввожу его или вставляю его затем, это работает, но не, когда tragic.py печатает его или производит его с sys.stdout.write
Вы всегда можете использовать xargs
, т. Е.
echo '-l' | xargs ls
эффективно выполнят ls -l
. Так что в вашем случае это должно быть что-то вроде ./tragic.py | xargs ./dbot.sh
, то есть вывод команды ./tragic.py
будет использоваться в качестве аргумента ./dbot.sh