Description of problem: A file starting with '#!/usr/bin/env python -tt' does not behave the same when executed as: python -tt FILE Version-Release number of selected component (if applicable): coreutils-5.97-12.2.fc6 How reproducible: always Steps to Reproduce: 1. printf '#!/usr/bin/env python -tt\nprint 1\n' > t 2. chmod +x t 3. ./t 4. python -tt t Actual results: /usr/bin/env: python -tt: No such file or directory Expected results: 1 Additional info: Works on MacOS 10.4, with its FreeBSD derived /usr/bin/env
When invoking any program via #!, only two things can be on that first line: the first (everything up to first white space byte) is taken as a program name. Everything after that first bit of white space is grouped together as a single "argument" to that program. In your case, "python -tt" is interpreted as a program name, and of course is not found. Instead, you can do something like this: cat <<EOF > t #!/usr/bin/env python import warnings warnings.filterwarnings("error", category=SyntaxWarning) print 1 EOF
Thanks for the explaination.