Eu não entendo o que você quer. A maneira normal de criar um crontab é executar crontab -e . Então, o usuário "terá que digitar o comando para executar e o script fará o resto". Tudo o que o usuário precisa fazer é definir a hora e o comando a ser executado. Como poderia ser mais simples?
É impossível ter cron definir a hora automaticamente, como ela pode saber quando você deseja que o comando seja executado? Quer dizer que você quer criar um crontab que tenha um tempo padrão ?
Se assim for, você poderia fazer algo assim:
#!/usr/bin/env bash
time="0 5 * * 1" ## 5 a.m every week
read -p "Enter the command you wish cron to run:" comm
file='mktemp' && echo "$time $comm" > $file && crontab $file && rm $file
Você pode salvá-lo como, por exemplo, /usr/local/bin/make_crontab.sh .
Como alternativa, se tudo que você deseja é não usar nano , altere sua variável $EDITOR . Pessoalmente eu uso emacs , então eu tenho essa linha no meu .bashrc :
export EDITOR='/usr/bin/emacs';