# Minishell - Checklist de pruebas manuales

Ejecuta en `minishell-codex/`:
- `make`
- `./minishell`

## 1. Prompt y salida
- Iniciar y salir con `ctrl-D`.
- `exit` debe cerrar el shell con el ultimo status.

## 2. Comandos simples
- `ls`
- `pwd`
- `echo hola`

## 3. Builtins
- `echo -n hola` (sin salto de linea)
- `cd /` luego `pwd`
- `export TEST=42` luego `env | grep TEST`
- `unset TEST` luego `env | grep TEST` (no debe aparecer)
- `env` sin argumentos
- `exit 2`

## 4. Expansion
- `echo $HOME`
- `echo $?` despues de un comando que falle (ej: `ls noexiste`)
- `echo '$HOME'` (no expande)
- `echo "$HOME"` (si expande)

## 5. Pipes
- `ls | wc -l`
- `echo hola | cat`
- `cat /etc/passwd | grep root | wc -l`

## 6. Redirecciones
- `echo hola > out.txt` y luego `cat out.txt`
- `echo 1 >> out.txt` y luego `cat out.txt`
- `cat < out.txt`

## 7. Heredoc
- `cat << EOF`
  - escribir varias lineas
  - `EOF`
- Ver que se imprime todo lo escrito.

## 8. Comillas
- `echo "a b c"` (una sola palabra)
- `echo 'a b c'` (una sola palabra)
- `echo "a 'b' c"`

## 9. Errores de parseo
- `| ls` (no debe ejecutar)
- `echo hola >` (error)
- `echo "hola` (comillas sin cerrar)

## 10. Senales
- `ctrl-C` en prompt: debe limpiar linea y mostrar prompt nuevo.
- `sleep 5` y `ctrl-C`: debe interrumpir el proceso.
- `ctrl-\` no debe imprimir nada en prompt interactivo.
