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.