I'll give you variables. And I guess sleep. But Snap! doesn't interact with the user through a character buffer; it does this complicated graphics stuff with sprites and all that. SAY isn't the same as echo, for example, because a particular sprite says the text, and because it vanishes when that sprite says something else.
I have used Bash on my raspberry pi and would be happy to help. In fact the other day i was making something a bit like Bash on Snap! And i'm happy to attempt to make a basic file system too if you want.
Maybe the problem is that I don't understand the entire project goal. A Unix shell is a program to run other programs. With a few exceptions, a shell command doesn't do something the shell knows about; the first word in the shell command names the program you want to run. The shell is useful because of the hundreds of application programs that also come with your Unix system. What will your shell-in-Snap! actually do?