I remember someone made an interesting point that the notable thing about traditional shell scripting languages (as opposed to conventional scripting languages) is that the filesystem is effectively the "top level scope" of the language. i.e. you can refer to files (paths) much like they are variables that are ambiently defined.