Você confundiu o script de shell. Deve ser:
#! /bin/sh
#
# File copyright Wade Bowmer, but you're free to use it as you like.
#
# Be sure to have a look at http://yceran.org/eps/
#
# Parameter checking
CMD=read
if [ "'basename $0'" == "epswrite" ] ; then CMD=write ; fi
if [ "$1" == "read" ] ; then CMD=read ; fi
if [ "$1" == "write" ] ; then CMD=write ; fi
# Do the actual work
CYL=0
while [ $CYL -lt 80 ] ; do
fdrawcmd $CMD 0 $CYL 0 0 2 10 0x1b 0xff length=5120 rate=2 track=$CYL
# Second side
fdrawcmd $CMD 4 $CYL 1 0 2 10 0x1b 0xff length=5120 rate=2 track=$CYL
CYL=$(( $CYL + 1 ))
done
Veja como funciona:
Primeiro, define a variável CMD
local como " read
".
Em seguida, se o basename
do script for "epswrite"
, define CMD
como " write
".
Se o primeiro parâmetro do script for " read
", CMD
será definido como " read
".
Se o primeiro parâmetro do script for " write
", CMD
será definido como " write
".
A variável local CYL
está definida como 0
.
As variáveis CMD
e CYL
serão usadas na geração do comando real a ser executado.
Um loop começa! Contanto que a condição $CYL -lt 80
(O valor de CYL
seja menor que 80
) seja verdadeira, o código de shell entre o do
e o done
correspondente será repetido.
Existem 3 comandos no loop. Nos dois primeiros, a interpolação dos valores para CMD
e CYL
cria os comandos acutal usados para executar o fdrawcmd
(consulte man fdrawcmd
). A primeira vez através do loop, os comandos serão:
fdrawcmd read 0 0 0 0 2 10 0x1b 0xff length=5120 rate=2 track=0
fdrawcmd read 4 0 1 0 2 10 0x1b 0xff length=5120 rate=2 track=0
#....CMD.^^^^ ^ CYL ^ CYL
O terceiro comando no loop,
CYL=$(( $CYL + 1 ))
incrementa CYL
em 1
. Depois de um tempo, $CYL -lt 80
não será verdadeiro e o loop terminará. A execução do script de shell será retomada após o
done
linha.
Para descobrir quais são todos esses parâmetros para o comando fdrawcmd
, leia man fdrawcmd
ou a cópia on-line