Skip to content

Instantly share code, notes, and snippets.

@h0ffy
Last active May 2, 2025 16:31
Show Gist options
  • Save h0ffy/0eb869bf4ad5a8633e4a80ba31342716 to your computer and use it in GitHub Desktop.
Save h0ffy/0eb869bf4ad5a8633e4a80ba31342716 to your computer and use it in GitHub Desktop.

Generación sencilla de scripts en Bash

1.1. Configuración

Es necesario editar el archivo de configuración ".bashrc"

vim ~/.bashrc

vim /etc/bashrc

1.2. Script de generación

Con el siguiente script en ~/.bashrc podrás generar scripts de forma muy sencilla mientras ejecutas las ordenes cómo haces comunmente.

script_begin() {
  if [[ $# -gt 0 ]]; then
    CAPTURE_FILE="${1%.sh}.sh"
  else
    CAPTURE_FILE="capture_$(date +%Y%m%d_%H%M%S).sh"
  fi
  export CAPTURE_FILE="capture_$(date +%Y%m%d_%H%M%S).sh"
  echo "#!/usr/bin/env bash" > "$CAPTURE_FILE"
  # Add command after execution
  trap '[[ $BASH_COMMAND != $PROMPT_COMMAND ]] && echo "$BASH_COMMAND" >> "$CAPTURE_FILE"' DEBUG
  echo "Start scripting to $CAPTURE_FILE"
}

# 2. stop_capture: stop trap DEBUG and asign permissions
# 2. stop_capture: detiene el trap DEBUG y da permisos de ejecución
script_end() {
  trap - DEBUG
  chmod +x "$CAPTURE_FILE"
  echo "Great your script is st: $CAPTURE_FILE"

}

# Aliases opcionales
alias scriptdev='script_begin'
alias scriptundev='script_end'
alias scriptend='script_end'

1.3. Uso

Su uso es sencillo solo tiene que ejecutar esto al inicio y al final de la secuencia.

#inicio secuencia
bash~>$ scriptdev $nombre_script_o_nada_y_se_genera_solo
bash~>$ echo "Esto es parte del script"
bash~>$ apt install python3-pip python3-full python3-venv
bash~>$ python3 -m .venv /opt/.venv_example
bash~>$ source .venv/bin/activate
bash~>$ python3 -m pip install -U pip
bash~>$ pip install easysetup setuptools wheel whl
bash~>$ scriptend
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment