Решение, использующее сценарий оболочки или рабочий процесс Automator
Откройте Automator и создайте рабочий процесс. Когда вас попросят выбрать тип рабочего процесса, выберите тот, который соответствует вашим предпочтениям.
Перетащите шаблон Utilities »Run Shell Script в пустой рабочий процесс; это открывает большое текстовое поле. Вставьте следующий код в текстовое поле:
#!/bin/bash
EXTENSION=xxx
SCRIPT_NAME='Create a file whose first line determines the file name'
TMP_FILE="$(mktemp -dt "create_file_whose_first_line_determines_file_name.XXXXXXXXXX")/New file whose first line determines the file name.txt"
echo 'untitled.txt' > "${TMP_FILE}" && open -neW "${TMP_FILE}"
TARGET_FILE="$(head -n 1 "${TMP_FILE}").${EXTENSION}"
if tail -n +2 "${TMP_FILE}" >> "${TARGET_FILE}"
then
osascript -e "display notification \"${TARGET_FILE}\" with title \"File created\""
open -R "${TARGET_FILE}"
else
osascript -e "display notification \"${TARGET_FILE}\" with title \"Unable to create file\""
open -R "${TMP_FILE}"
fi
(Примечание. Измените EXTENSION=xxx
на любое необходимое вам расширение.)
Сохраните рабочий процесс в любом удобном месте. Запустите рабочий процесс без аргументов; он откроет временный файл в новом экземпляре TextEdit и будет ждать, пока вы сохраните и закроете TextEdit. Затем скрипт создаст файл в соответствии с вашими требованиями.
В случае успеха скрипт покажет вновь созданный файл в Finder.
Если скрипт не может создать файл, он покажет временный файл в Finder.