nefunguje bezchybny script BASH

AntiTrust - AT antitrust na centrum.sk
Pátek Září 17 19:45:07 CEST 2004


Pavel Kankovsky wrote:

> On Fri, 17 Sep 2004, AntiTrust - AT wrote:
> 
> 
>>#! /bin/sh
> 
> ...
> 
>>echo ~$inputfile
>>cat "~$inputfile"
>>ls "~$inputfile"
>>ls -l $HOME
> 
> ...
> 
>>./script x4
>>(user x4 existuje), tak:
>>~x4/orig
>>cat: ~x4/orig: No such file or directory
>>ls: ~x4/orig: No such file or directory
> 
> 
> To je ovsem spravne chovani dle POSIXu.

Cize zsh potom nesplna POSIX? (resp. ho mam zle nastaveny?)
Okrem toho v commandline mi to v bash-i aj zsh ide OK.
cat ~x4/orig AJ ll ~x4/orig ...

> 
> 1. ~ a nasledne slovo nesmi byt v uvozovkach
> 2. slovo po ~ musi byt text a ne promenna, protoze ~ se expanduje
>    drive nez promenne



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

#
~x4/orig
#TOTO je IMHO spravne, ved cat ziadne uvodzovky nevidi a proste robi to
#iste, ako ked napisem cat ~x4/orig v cmd -- ja sa nehadam, ja viem, ze
#sa asi mylim, ale xcem pochopit kde, a ako to mam robit spravne :) --
#preto prosim o trpezlivost
cat: ~x4/orig: No such file or directory
ls: ~x4/orig: No such file or directory

> 
> Je treba pouzit eval.

Mozem poprosit o blizsi priklad/link?
Nasiel som 
http://www-user.tu-chemnitz.de/~tla/uarch/Bash_Book/abs-guide/internal.html#EX43.
Lenze ja mam v scripte ls a cat len pre testovacie ucely.
Co v skutocnosti xcem dosiahnut (mozno som sa mal vyjadrit hned na 
zaciatku a jednoznacnejsie) je
0. spustenie scriptu3 na ~userX/subor1, ~userX/subor3, 
~userX/cesta/daco8.conf.
1. Ja tie subory (/subor1 zadam do premennych #inputfileX) a while/for
1B. inputfile=$HOME-konkretnehousera-z-$1+$inputfileX
2. /cesta/script3 $inputfile


AT


-=x=-
Skontrolované antivírovým programom NOD32



Další informace o konferenci Linux