Er zit een verschil in de manier waarop unix en windows hun files opmaken. Namelijk dos gebruikt een cariage return CR gevolgd door een line feed LF en linux enkel een LF.
Volgend prog dat geïnstalleerd staat op de server kan je helpen.
Citaat:
fromdos(1) fromdos(1)
NAME
fromdos - convert DOS text file format to UNIX.
SYNOPSIS
fromdos < dosfile.txt > unixfile.txt
DESCRIPTION
fromdos takes a DOS text file as stdin and sends a UNIX
text file to stdout. DOS text file format separates lines
of text by two characters: CR followed by LF (hex 0d 0a).
UNIX text file format separates lines of text with a sin-
gle LF character (hex 0a). This program changes the CR LF
groups found in the input stream to LF in the output
stream.
SEE ALSO
todos(1).
Bij de meeste linuxdistro's kan je dat doen met dos2unix maar scoutnet draait slackware en daar is het
fromdos dat de klus klaart.
Dit prog leest alles aan STDIN en schrijft alles uit aan STDOUT dus < en > gebruiken
fromdos < dosfile.txt >unix.txt
zal door < een file inlezen
en door > de uitvoer in een file unix.txt wechschrijven.
Dus die vierkante blokjes zijn line feeds. Wat betreft het gebruik van editors. vim staat op de scoutnetserver en zet de syntax in kleur wat handig kan zijn bij programmeren. Maar indien je liever notepad blijft gebruiken dan moet je beslist fromdos eens gebruiken.
Als voorbeeld heb ik de file /tmp/info.php omgezet naar zijn dos equivalent.
todos </tmp/info.php >info_dos.php
chmod 777 /tmp/info_dos.php ==> iedereen alle rechten geven
/tmp/info_dos.php ==> uitvoeren
resultaat:
Citaat:
sn0857@leeuwarden:/tmp$ /tmp/info_dos.php
: bad interpreter: No such file or directory
dan
fromdos < /tmp/info_dos.php > /tmp/info_unix.php
chmod 777 /tmp/info_unix.php
/tmp/info_unix.php
en dat werkt wel
De files staan nog in /tmp en zijn voor iedereen bereibaar dus je kan het controleren. Ik heb ze wel chmod 555 gedaan om te vermijden dat iemand de inhoud zou aanpassen zodat het niet meer werkt.