Você está usando o comando errado.
echo "grep --ignore-case $1 *.find" > search.sh
Meu script bash faz muitas coisas, entre as quais a criação de outro script. Eu gostaria de ter a seguinte linha para ser executada dentro de um script. Mas isso não funciona (o grep é executado em vez de colado no search.sh). O que estou fazendo errado?
cat "grep --ignore-case $1 *.find" > search.sh
Você está usando o comando errado.
echo "grep --ignore-case $1 *.find" > search.sh
Use echo em vez de gato.
E como você usa curingas, talvez queira usar »'«, não »" «:
echo 'grep --ignore-case $ 1 * .find' > > search.sh