The shell, whether zsh or bash, does not pay any attention to the shebang line. That is done by the operating system kernel. That is, when you execute a shell script the OS notices that the file is a plain text file with a "#!" signature and launches the named program to interpret its contents. You cannot reasonably expect exported functions to work across different shells. Put the function in a script file and reference that as your argument to the parallel command. On Sat, Nov 24, 2012 at 5:07 PM, John wrote: > Been using zsh for a while now and loving it. I ran into a problem today. > The following script errors out if run with zsh as my default shell: > > #!/bin/bash > v_build() { > > echo "The file is $1" > } > > export -f v_build > find . -maxdepth 1 -type f | parallel v_build > > Output: > % ./test > zsh:1: command not found: v_build > zsh:1: command not found: v_build > zsh:1: command not found: v_build > zsh:1: command not found: v_build > > If I switch to a user who has bash as its default shell, the same script > runs just fine: > > $ ./test > The file is ./test > The file is ./01.jpg > The file is ./02.jpg > The file is ./03.jpg > > Love to understand what I have incorrectly configured. It seems like zsh > is ignoring the shebang telling it to use /bin/bash as the shell to run the > script. > -- Kurtis Rader Caretake of the exceptional canines Junior and Chino