No hay forma de recorrer un script para ver cómo se ejecutaría sin hacerlo realmente. En su ejemplo, no hay ifdeclaraciones ni bucles. Pero en los guiones reales, a menudo hay muchas declaraciones condicionales. La rama que se tomará a menudo dependerá de lo que sucedió cuando el shell ejecutó el comando anterior. Si no ejecuta el comando, no hay forma de que el shell sepa qué salida habría generado o cuál habría sido el código de retorno, de lo que podría depender la próxima rama condicional o declaración de asignación.
Si el punto es que desea examinar un script y saber qué hace antes de ejecutarlo, no es una mala idea. Pero, siendo realistas, sobre la mejor manera de hacerlo es simplemente navegar el archivo con lesso vio algo similar.
Adicional
Si está desarrollando una secuencia de comandos y quiere pasar por ella la primera vez, probando la lógica pero sin hacer ningún daño si tiene un error, la solución que a menudo puedo usar es modificar solo las declaraciones que podrían causar algún daño pegando una echoen el frente.
Esto a menudo funciona en scripts típicos de la vida real porque (a) generar las listas de elementos sobre los que iterará o el valor al que establecerá una variable a menudo se puede generar sin cambiar el sistema de archivos y (b) generalmente es suficiente para suponga que si ejecutó el comando, tendría éxito.