Не пытайтесь очистить историю - даже если это самый очевидный способ, которым передача пароля в командной строке разоблачает его, это действие дает ложное чувство безопасности: пароли, указанные наКомандная строка тривиальна для захвата через другие процессы, работающие на той же машине (даже под ненадежными учетными записями!) даже без истории вообще.
Более того, как вы заметили, оболочка может изменять только свою собственную Состояние в памяти, а не состояние в памяти отдельного процесса, который запустил его (который может даже не быть той же самой оболочкой или оболочкой вообще!).
Вместо этого,измените соглашение о вызовах вашей программы Python для чтения пароля непосредственно из TTY (как это делает SSH) или из среды.В последнем случае использование может выглядеть следующим образом:
# assumes you renamed aesencrypt.py to aesencrypt, ran chmod +x, and gave a valid shebang
password="somePassword" aesencrypt outFile
... и вы захотите изменить скрипт Python так, чтобы он делал что-то вроде:
#!/usr/bin/env python
import os, sys
filename = sys.argv[1]
password = os.environ['password']
# ...put the rest of your logic here.