Description of problem: Shebang is script files does not seem to care for fish. I have /bin/sh as a symlink to bash. When fish executes a script, it does not call the shell from the shebang comment line. Version-Release number of selected component (if applicable): fish-2.1.1-2.fc21.x86_64 rpm-build-4.12.0.1-4.fc21.x86_64 How reproducible: yes Steps to Reproduce: 1. install rpmbuild 2. /usr/lib/rpm/find-lang.sh $foo --with-qt Actual results: failure Expected results: no failure Additional info: $ head -1 /usr/lib/rpm/find-lang.sh #!/bin/sh Severity high cause it may confuse people heavily.
Unfortunately, fish is known to not be compatible to POSIX, neither bourne nor c shell.
Can you clarify? Shebangs are parsed by the kernel, not the shell.
Try this in a script: #!/bin/bash echo "a $SHELL" fish -c 'echo "b $SHELL"' I think the output should be for both fish and bash as the login shell and caller each then of the script: a bash b fish But fish enforces to set $SHELL in both cases: a fish b fish For "su -l" I get for root shell: a /bin/bash b /bin/bash
I did an experiment: $ env -i bash -c 'echo $SHELL' /bin/bash $ env -i sh -c 'echo $SHELL' /bin/bash $ env -i /sbin/busybox sh -c 'echo $SHELL' $ env -i fish -c 'echo $SHELL' $ env -i csh -c 'echo $SHELL' SHELL: Undefined variable. $ env -i dash -c 'echo $SHELL' It appears that bash is the odd one out here. If there is an actual problem, please reopen.