bash: ejecutar una salida de un script como script

Estoy escribiendo un script simple para generar todas las combinaciones de a y b de una longitud determinada (digamos 10). Quiero poder hacer esto en una línea de comando (sé que esto es bastante fácil si solo pongo todo en un archivo de script bash y lo ejecuto). Sin embargo, me preguntaba si es posible prescindir de archivos adicionales. Esto es lo que tengo hasta ahora:

n=10;
for i in `seq 1 1 $n`; do
    echo "for a$i in {a..b}; do ";
done;
echo -n "echo ";
for i in `seq 1 1 $n`; do
    echo -n '

(Formateé el código para facilitar la lectura, pero en realidad todo se ejecuta en una línea desde un indicador)

Esto me da el siguiente resultado:

for a1 in {a..b}; do 
for a2 in {a..b}; do 
for a3 in {a..b}; do 
for a4 in {a..b}; do 
for a5 in {a..b}; do 
for a6 in {a..b}; do 
for a7 in {a..b}; do 
for a8 in {a..b}; do 
for a9 in {a..b}; do 
for a10 in {a..b}; do 
echo $a1$a2$a3$a4$a5$a6$a7$a8$a9$a10
done;
done;
done;
done;
done;
done;
done;
done;
done;
done;

que está bien. Si copio eso y lo pego nuevamente en la línea de comando, funciona de maravilla y me da el resultado.

a pregunta es cómo hago esto solo con el script inicial, sin copiar y pegar y sin redirigir nada a los archivos.

He intentado pegar $ () alrededor del script, pero eso me da "Sin comando 'para' encontrado '", ya que no es realmente un comando sino un bash incorporado. Intenté poner eval en algún lugar antes de esto, pero sigo recibiendo más errores. Estoy un poco atascado, por lo que cualquier ayuda sería muy apreciada.

(Por cierto, solo para reiterar, estoy haciendo esto más o menos para aprender bash más, por eso no quiero redirigir la salida a un archivo y luego ejecutar ese archivo. Sé cómo hacer esa parte , pero no sé cómo hacerlo desde la línea de comandos)

"a$i"; done; echo; for i in `seq 1 1 $n`; do echo "done;"; done

(Formateé el código para facilitar la lectura, pero en realidad todo se ejecuta en una línea desde un indicador)

Esto me da el siguiente resultado:

for a1 in {a..b}; do 
for a2 in {a..b}; do 
for a3 in {a..b}; do 
for a4 in {a..b}; do 
for a5 in {a..b}; do 
for a6 in {a..b}; do 
for a7 in {a..b}; do 
for a8 in {a..b}; do 
for a9 in {a..b}; do 
for a10 in {a..b}; do 
echo $a1$a2$a3$a4$a5$a6$a7$a8$a9$a10
done;
done;
done;
done;
done;
done;
done;
done;
done;
done;

que está bien. Si copio eso y lo pego nuevamente en la línea de comando, funciona de maravilla y me da el resultado.

a pregunta es cómo hago esto solo con el script inicial, sin copiar y pegar y sin redirigir nada a los archivos.

He intentado pegar $ () alrededor del script, pero eso me da "Sin comando 'para' encontrado '", ya que no es realmente un comando sino un bash incorporado. Intenté poner eval en algún lugar antes de esto, pero sigo recibiendo más errores. Estoy un poco atascado, por lo que cualquier ayuda sería muy apreciada.

(Por cierto, solo para reiterar, estoy haciendo esto más o menos para aprender bash más, por eso no quiero redirigir la salida a un archivo y luego ejecutar ese archivo. Sé cómo hacer esa parte , pero no sé cómo hacerlo desde la línea de comandos)

Respuestas a la pregunta(2)

Su respuesta a la pregunta