Написание скрипта Python для генерации команд работает, и команды выполняются в bash, но они не вводятся в .bash_history.Что я должен сделать, чтобы эти команды отображались в .bash_history? мой файл py выглядит следующим образом:

import os
import sh

def main():
    bashcommand = "top"
    bashcommand1 = "ls"
    bashcommand2 = "vi exp1.txt"
    os.system(bashcommand)
    os.system(bashcommand1)
    os.system(bashcommand2)
main()

sh.cd('/root')
print(sh.pwd())

1 ответ1

0

Как прокомментировал Сами Лэйн, os.system использует оболочку, которая часто не является bash. Кроме того, bash -c 'command' не записывает в .bash_history. Вы можете, конечно, просто сделать что-то вроде этого:

import os
def runcommand(command):
    with open(os.path.expanduser('~/.bash_history'), 'a') as f:
        f.writelines([command])
    os.system(command)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .