function shell