#!/bin/sh # Sorry in advance to 'mksh' users (users of the shell, not this script) newname() { defname="script"; name=$defname`ls | grep "^$defname[0-9]*" | wc -l | tr -d '[:blank:]'`; } # Remove blank space in certain non-GNU implementations of wc [ -z "$1" ] && newname || name="$1" [ -e "$name" ] && echo "File $name exists!" && exit 1 [ -z "$2" ] && shebang="#!/bin/sh" || shebang="$2" echo "$shebang" > "$name" && chmod +x "$name" && $EDITOR "$name" # Delete file if it is just exited w/o being changed [ "`cat "$name"`" = "$shebang" ] && rm "$name" && echo "Removed empty script \"$name\"" || echo "Saved script \"$name\""