nefunguje bezchybny script BASH

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Neděle Září 19 11:52:38 CEST 2004


On Fri, 17 Sep 2004, AntiTrust - AT wrote:

> Cize zsh potom nesplna POSIX? (resp. ho mam zle nastaveny?)

Asi nesplnuje. Ovsem ne vsechny shelly jsou si rovny.
I bash se chova ruzne podle toho, zda ho spustite jako sh (nebo bash 
--posix) nebo jako bash.

> Okrem toho v commandline mi to v bash-i aj zsh ide OK.
> cat ~x4/orig AJ ll ~x4/orig ...

A zadavate totez, co v tom skriptu (tj. napr. ls "~$inputfile")?

> inputfile="~"$user"/orig"
> echo $inputfile
> cat $inputfile
> ls $inputfile

Uz jsem rikal, ze ~ se expanduje pred expanzi promennych a ze se to nedela
v uvozovkach.

Takze do inputfile pujde text "~x4/orig".

"cat $inputfile" se projde expanzi ~ beze zmeny, pak se nahradi
promenna a provede rozdeleni na slova, vznikne seznam ("cat", "~x4/orig"),
ktery se provede ("cat" bude prikaz, "~x4/orig" argument). cat (ls atd.)
pochopitelne nic o ~ nevi, takze skonci s tim, ze soubor ci adresar toho 
jmena nezna.

Je to tak slozite pochopit?


--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux