46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
import os
|
|
import shlex
|
|
import subprocess
|
|
import readline
|
|
|
|
def completer(text, state):
|
|
commands = os.listdir('/bin') + os.listdir('/usr/bin') + os.listdir('/usr/local/bin')
|
|
matches = [cmd for cmd in commands if cmd.startswith(text)]
|
|
return matches[state] if state < len(matches) else None
|
|
|
|
def pseudo_zsh():
|
|
readline.parse_and_bind("tab: complete")
|
|
readline.set_completer(completer)
|
|
|
|
while True:
|
|
try:
|
|
cmd = input("20240915786@\u9648\u5764\u9633 ~ % ")
|
|
|
|
if cmd.strip() == "hexianglong":
|
|
print("Exiting secret mode...")
|
|
break
|
|
|
|
args = shlex.split(cmd)
|
|
if not args:
|
|
continue
|
|
|
|
if args[0] == 'cd':
|
|
try:
|
|
os.chdir(args[1])
|
|
except IndexError:
|
|
print("cd: missing argument")
|
|
except FileNotFoundError:
|
|
print(f"cd: no such file or directory: {args[1]}")
|
|
continue
|
|
|
|
try:
|
|
subprocess.run(args)
|
|
except FileNotFoundError:
|
|
print(f"zsh: command not found: {args[0]}")
|
|
except KeyboardInterrupt:
|
|
pass
|
|
except EOFError:
|
|
pass
|
|
|
|
if __name__ == "__main__":
|
|
pseudo_zsh() |