Podivne (ne)spousteni skriptu Tcl

Alexandr Malusek malusek na hroch.ujf.cas.cz
Úterý Prosinec 26 14:18:39 CET 2000


"Aleš Nehyba" <neal na cbox.cz> writes:

> ve Win jsem si vytvoril maly skript pro Tcl/Tk, ktery jsem si pote prenesl
> pod Linux. Zmenil jsem pristupova prava souboru (754) a zkusil spusit.
> Shell zahlasil, ze dany soubor neexistuje.

Pravdepodobne jste nezmenil DOS-ove konce radku (CR LF, '\r' '\n' v C)
na Unixove (LF, '\n' v C). Znak CR pak byl chapan jako soucast jmena
interpretru a takovy samozrejme v systemu neexistuje.

Priklad:
$ ls -l s1
-rwxr-xr--   1 malusek  users          34 Dec 26 16:52 s1

$ cat s1
#!/bin/bash
echo "Hello world."

$ ./s1
bash: ./s1: No such file or directory

$ od -c s1
0000000   #   !   /   b   i   n   /   b   a   s   h  \r  \n   e   c   h
0000020   o       "   H   e   l   l   o       w   o   r   l   d   .   "
0000040  \r  \n
0000042

Pro konverzi koncu radek jsou napr. v SuSE 7.0 definovane aliasy

alias dos2unix='recode ibmpc..lat1'
alias unix2dos='recode lat1..ibmpc'

V jinych distribucich existuji podobne nastroje.

--
A. Malusek  (malusek na ujf.cas.cz)
UJF AV CR


Další informace o konferenci Linux