Skip to content

P3 Tasks

Following are the features that need to be implemented:

  • Parsing:
    • parse tokens
  • Built Ins:
    • exit
    • cd using chdir
    • ls using scandir
      • directories should end with slash (not required)
      • sorting case insensitive
      • no .* files
      • alphasort using strcmp to avoid locale setting
    • local
      • getter and setter for local
      • update parse method to use getter
    • vars
    • export
      • getter and setter for environment variables
      • update parse method to use getter. Higher precedence
    • history
      • implement history using LL.
      • implement history set n.
      • implement history n. Don't record this.
      • only record non-built in commands.
  • Non built ins:
    • use fork and execv to execute all other commands.
  • File Redirection:
    • file redirection for built ins
    • file redirections for non built ins
  • Script Mode:
  • Batch Mode:
    • implement batch mode (file as an argument)
    • do not generate prompt in batch mode.
  • Memory leak checks:
    • use valgrind to check for memory leaks
  • Correct the exit condition and error codes.
  • Miscellaneous cases:
    • when there $ on right side of assignment in commands other than echo, export
    • If the same command is executed more than once consecutively, it should only be stored in the history list once. (what if built-in/non built-in/same built-in?)
  • Add README.md
Edited by GAURAV BATRA