I wonder is there any program that can take a bash script as input and print out all bash commands it will run? A program that would unroll loops, expand environment variables and generally not perform any destructive action nor call any external binaries. It’s like a dry run of sorts.

  • bionicjoey@lemmy.ca
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    1 year ago

    It would depend. Bash allows for command substitution, so it’s possible that there are commands in a script where you would only know what they would do by running other lines in the script.

    Edit: also, this is treading dangerously close to the Halting Problem. Imagine for a moment that you succeeded in creating such a program, written in Bash. Now imagine you gave this program its own source code as input. What would you expect it to tell you?

    • wolf@lemmy.zip
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 year ago

      This is not close to the halting problem, it is harder than the halting problem. ;-)