Today, I wrote a script in wingide. After it is uploaded to the server for execution, the following message is displayed:
-Bash:/usr/bin/autocrorder:/usr/bin/Python ^ m: Bad Interpreter: no such file or directory
Analysis:
This is caused by different system encoding formats: The. Sh. py file edited in Windows may have invisible characters, so the preceding exception information is reported when executed in Linux. This is generally because the end of a Windows line is different from the end of a Linux line.
Solution:
1) Conversion in Windows:
Some editors, such as ultraedit or editplus, are used to convert the script encoding before being executed in Linux. The conversion method is as follows (ultraedit): file --> conversions --> DOS-> UNIX.
2) Replace directly in Linux:
Sed-I's/^ m // G 'filename (note ^ m is written in Linux. Press ^ m to enter the line break. Press Ctrl + V to open v, by m)
3) can also be converted in Linux:
First, make sure that the file has executable permissions.
# SH> chmod A + x filename
Then modify the file format
# SH> VI filename
Use the following command to view the file format
: Set FF or: Set fileformat
The following information is displayed:
Fileformat = DoS or fileformat = Unix
Use the following command to modify the file format
: Set FF = Unix or: Set fileformat = Unix
: WQ (Disk logout)
Finally, execute the file.
# SH>./filename