Bug 220264

Summary: #!/usr/bin/env python -tt doesn't work
Product: [Fedora] Fedora Reporter: Scott Tsai <scottt.tw>
Component: coreutilsAssignee: Tim Waugh <twaugh>
Status: CLOSED NOTABUG QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 6CC: meyering
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-12-20 02:58:47 EST Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:

Description Scott Tsai 2006-12-19 18:21:49 EST
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
Comment 1 Jim Meyering 2006-12-20 02:58:47 EST
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
Comment 2 Scott Tsai 2006-12-20 06:45:02 EST
Thanks for the explaination.