#!/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 for certain non-GNU wc implementations [ -z "$1" ] && newname || name="$1" [ -z "$2" ] && shebang="#!/bin/sh" || shebang="$2" touch "$name" echo "$shebang" > "$name" chmod +x "$name" $EDITOR "$name" || vim "$name" || vi "$name" || nano "$name" || ed "$name" # Try editors lol # 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\""