Am sapat toata ziua dupa manuale de shell programing. man sh si man csh nu
m-ua ajutat. Am cumparat 'Unix Shell Programming Tools' de David Medinets,
1999 si nici acolo nu gasesc.
Eu sint zero la shell programing, dar nu vreau sa fac munca de mina si
parca nu as scrie un program in fortran ca sa ma ajute.
Am de creiat multe fisiere de genul:
Co(0001), 1x1 hcp, $i lo+5lv
2.4955
1.0000000000000000 0.0000000000000000 0.0000000000000000
0.5000000000000000 0.8660254037844386 0.0000000000000000
0.0000000000000000 0.0000000000000000 $mj
$i
Direct
0.00000000000000000 0.00000000000000000 $k
0.33333333333333333 0.33333333333333333 $l
...
unde $i este variabila intr-un ciclu for (la sh) sau foreach (la csh).
mj = sqrt(2/3) * (4+$i).
k si l sint de forma:
k = 2*z / (4+$i)
l = (2*z*1) / (4+$i)
unde z ia toate valorile de la 0 la int(i/2).
Problema mea este la calcularea acelui mj.
In csh ii scriu:
@ mj = sqrt(2/3) * (4+$i)
si zice: @: Expression Syntax.
ii scriu:
@ mj = ( 0.81649658092772603272 * ( 4 + $i ) )
si zice @: Badly formed number.
Am incercat sa schimb $i, ca o fi string si nu numar.
In ciclul lui i, ii bag un:
@ k++
sau
@ k = k+1
si pun k in loc de i in expresia lui mj. zice:
@: Badly formed number.
Nici macar nu zice care.
Gata trec la sh.
Acolo fac:
let mj = =0.81649658092772603272*(4+$i)
si zice:
./run: line 11: syntax error near unexpected token `j=0.81649658092772603272*(4'
./run: line 11: `let j=0.81649658092772603272*(4+$i)'
iar daca desfac paranteza:
let mj=0.81649658092772603272*4+0.81649658092772603272*$i
compileaza, dar la stderr da:
./run: let: mj=0.81649658092772603272*4+0.81649658092772603272*01: syntax error in
expression (error token is ".81649658092772603272*4+0.81649658092772603272*01")
si mj ramine zero mereu.
Cum se fac operatii aritmetice in shell-uri ca m-am capiat.
Daca asta nu stie sa calculeze, ce ma fac cu k si l?
Stie cineva sa-mi spuna unde gasesc exemple sau o descriere mai amanuntita
la operatiile astea.
Multumesc,
Mugurel
P.S. Ultima resursa, am inlocuit 0.81649658092772603272 cu 77 si merge.
Asta inseamna ca numerele reale nu-si au locul intr-un shell?
Tocmai am calculat $a=1/2 si echo "$a" zice ca-i 0!
---
Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to
unsubscribe from this list.