newscript () {

  local name shell

  # vérifie les paramètres
  [ $# -eq 0 ] || [ $# -lt 3 ] ||{
    echo "usage: newscript scriptname[.sh] [shell name]"
    return 1
  }
  # si second paramètre, prend le nom de shell spécifique, sinon "sh" par défaut
  if [ $# -eq 2 ]; then
    shell=$2
  else
    shell=sh
  fi

  # si ne se termine pas par .sh, l'ajoute
  echo $1 | grep -q -e '.*\.sh$'
  if [ $? -eq 0 ]; then
    name=$1
  else
    name=$1.sh
  fi

  # crée le fichier s'il n'existe pas (on devrait avoir une erreur s'il existe ?)
  touch $name || return $?

  # le rend exécutable
  chmod +x $name || return $?

  # contenu minimum
  cat > $name << EOF
#!/bin/$shell

# vi:set ts=2 sw=2 noet:
EOF
  [ $? -eq 0 ] || return $?

  # lance l'éditeur si défini
  [ -n "$EDITOR" ] && $EDITOR $name

}