This commit is contained in:
xyb
2025-04-02 09:59:49 +08:00
Unverified
parent 121e50cb06
commit 726cb188d6

42
test.py Normal file
View File

@@ -0,0 +1,42 @@
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(f"{os.getcwd()} % ")
if cmd.strip() == "exit":
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
subprocess.run(args)
except KeyboardInterrupt:
print("\nUse 'exit' to quit.")
except EOFError:
print("\nBye!")
break
if __name__ == "__main__":
pseudo_zsh()