mksh

Nombre: mksh
Autor: ihuhnix
Origen: original
Lenguaje: bash
Licencia: GPL
Propósito: Crear o editar scripts, haciéndolos inmediatamente ejecutables desde $PATH
Dependencias: vi, echo, chmod

Código:

#!/bin/sh
#mksh 0.1
#Crea un nuevo script o, si existe, lo edita.
#ihuhnix
#GPL
#BUG: ?

script=$HOME/.script/$1

function print_usage () {
        echo "USO: `basename $0` archivo_a_crear"
}

function edit () {
read -p "¿Deseas editar $script? [s/n] " R
        if [ $R = s ]; then
                vi $script
        else
                echo -e "\tNINGÚN ARCHIVO SE HA CREADO/MODIFICADO"
                exit 1
        fi
}

function mk () {
echo '#!/bin/sh' > $script
chmod +x $script
vi $script
}

if [ $# -ne "1" ]; then
        print_usage
        exit 1
elif [ -e $script ]; then
        echo "mksh: ERROR: El script “$script” ya existe"
        edit
        else
        mk
fi

Ejemplos de uso:

{2}17:03:33 [1]
1000@0:~/.script$ mksh
USO: mksh archivo_a_crear

{2}17:04:11 [1]
1000@0:~/.script$ mksh mksh
mksh: ERROR: El script “/home/ihuhnix/.script/mksh” ya existe
¿Deseas editar /home/ihuhnix/.script/mksh? [s/n] n
NINGÚN ARCHIVO SE HA CREADO/MODIFICADO

{2}17:04:16 [1]
1000@0:~/.script$

Comentarios: Una simple utilidad para ahorrar tiempo a la hora de crear scripts. Por lo que he investigado no es una idea nueva (ni siquiera el mismo nombre que le puse “mksh”), puesto que he comprobado luego que existen otros muy similares. Pero ahí queda.

Lo único necesario a modificar es el valor de $script que debe ser un directorio incluido en $PATH. Quizá debería haber puesto algo más estándar como script=$HOME/bin/$1, pero ése es el código real del script que uso. No considero un bug que no exista dicho directorio (aunque sí que lo es), ya que corregir eso implicaría tener que crearlo a petición del usuario e incluirlo en $PATH, cosas que se salen del propósito secillo de este script.