{/'title/':/'Java MiniShell - 实现简单的命令行解释器/',/'description/':/'本代码实现了一个简单的命令行解释器(MiniShell),用于模拟一个简易的Shell环境。它支持配置文件读取,命令历史记录,以及一些基本的命令,如 ls、cd、mkdir、rmdir、rm、touch、chmod、cat、tar 和 pwd 等。/',/'keywords/':/'Java, MiniShell, 命令行解释器, Shell, 命令行, 配置文件, 命令历史记录, ls, cd, mkdir, rmdir, rm, touch, chmod, cat, tar, pwd/',/'content/':/'import java.io.BufferedReader; //nimport java.io.File; //nimport java.io.FileReader; //nimport java.io.IOException; //nimport java.util.ArrayList; //nimport java.util.List; //nimport java.util.Scanner; //n//npublic class MiniShell { //n private static final String CONFIG_FILE = /'miniShell.conf/'; //n private static final String DEFAULT_PROMPT = /'# /'; //n private static final String DEFAULT_BACKGROUND = /'black/'; //n private static final String DEFAULT_FONT = /'宋体/'; //n private static final int DEFAULT_FONTSIZE = 30; //n private static final String DEFAULT_FONTCOLOR = /'white/'; //n//n private String prompt; //n private String background; //n private String font; //n private int fontSize; //n private String fontColor; //n private List commandHistory; //n //n public MiniShell() { //n this.prompt = DEFAULT_PROMPT; //n this.background = DEFAULT_BACKGROUND; //n this.font = DEFAULT_FONT; //n this.fontSize = DEFAULT_FONTSIZE; //n this.fontColor = DEFAULT_FONTCOLOR; //n this.commandHistory = new ArrayList<>(); //n } //n //n public void loadConfig() { //n try (BufferedReader reader = new BufferedReader(new FileReader(CONFIG_FILE))) { //n String line; //n while ((line = reader.readLine()) != null) { //n line = line.trim(); //n if (!line.isEmpty() && !line.startsWith(/'#/')) { //n String[] parts = line.split(/'=/'); //n if (parts.length == 2) { //n String key = parts[0].trim(); //n String value = parts[1].trim(); //n switch (key) { //n case /'promote/': //n this.prompt = value; //n break; //n case /'background/': //n this.background = value; //n break; //n case /'font/': //n this.font = value; //n break; //n case /'fontsize/': //n this.fontSize = Integer.parseInt(value); //n break; //n case /'fontcolor/': //n this.fontColor = value; //n break; //n } //n } //n } //n } //n } catch (IOException e) { //n // Ignore if config file is not found or cannot be read //n } //n } //n //n public void start() { //n Scanner scanner = new Scanner(System.in); //n while (true) { //n System.out.print(prompt); //n String command = scanner.nextLine(); //n commandHistory.add(command); //n //n if (command.equals(/'exit/')) { //n break; //n } //n //n executeCommand(command); //n } //n scanner.close(); //n } //n //n private void executeCommand(String command) { //n String[] parts = command.split(/' /'); //n String cmd = parts[0]; //n //n switch (cmd) { //n case /'ls/': //n // Handle ls command //n break; //n case /'cd/': //n // Handle cd command //n break; //n case /'mkdir/': //n // Handle mkdir command //n break; //n case /'rmdir/': //n // Handle rmdir command //n break; //n case /'rm/': //n // Handle rm command //n break; //n case /'touch/': //n // Handle touch command //n break; //n case /'chmod/': //n // Handle chmod command //n break; //n case /'cat/': //n // Handle cat command //n break; //n case /'tar/': //n // Handle tar command //n break; //n case /'history/': //n printCommandHistory(); //n break; //n case /'pwd/': //n // Handle pwd command //n break; //n default: //n System.out.println(/'Unknown command: /' + cmd); //n } //n } //n //n private void printCommandHistory() { //n for (int i = 0; i < commandHistory.size(); i++) { //n System.out.println(i + /': /' + commandHistory.get(i)); //n } //n } //n //n public static void main(String[] args) { //n MiniShell miniShell = new MiniShell(); //n miniShell.loadConfig(); //n miniShell.start(); //n } //n}/


原文地址: https://www.cveoy.top/t/topic/pBWQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录