Sida 1 av 1

Mysko problem med skalvariabler

Postat: 29 jul 2007, 18:01
av Emil.s
Hur förklarar ni detta?

Kod: Markera allt

emil@servern: ~/test $ FIL2="~/tillfälligt/test"
emil@servern: ~/test $ echo 'something' >> $FIL2
-bash: ~/tillfälligt/test: No such file or directory
emil@servern: ~/test $ echo 'something' >> ~/tillfälligt/test
emil@servern: ~/test $ cat $FIL2
cat: ~/tillfälligt/test: No such file or directory
emil@servern: ~/test $ ls -l ~/tillfälligt/
total 5
drwxr-xr-x 19 emil emil 704 2007-07-10 20:56 linux-2.6.22.1
-rw-r--r--  1 emil emil  10 2007-07-29 17:59 test

SV: Mysko problem med skalvariabler

Postat: 29 jul 2007, 19:30
av DeepThought
Jag antar att det är för att ~ tolkas som /home/user av bash, och inte är identiskt med /home/user per definition. Vet inte hur jag skall förklara, men ovanstående fungerar om du sätter:

FIL2="/home/$USER/tillfälligt/test"

Jag kan inte förklara det "snyggt", men du kanske förstår vad jag menar :)

SV: Mysko problem med skalvariabler

Postat: 29 jul 2007, 21:25
av Konservburk
Emil.s skrev: Hur förklarar ni detta?

Kod: Markera allt

emil@servern: ~/test $ FIL2="~/tillfälligt/test"
emil@servern: ~/test $ echo 'something' >> $FIL2
-bash: ~/tillfälligt/test: No such file or directory
Tilde-expansion utförs inte om du escapar ditt tilde.

Kod: Markera allt

bash$ echo "~"
~
bash$ echo '~'
~
bash$ echo \~
~
bash$ echo ~
/home/user
Dessutom får ingenting vara escapat fram till nästa /
eller ordets slut.

Kod: Markera allt

bash$ echo ~""
~
bash$ echo ~"/"
~/
bash$ echo ~/""
/home/user/
Du måste m.a.o. flytta ut ~/ ur dubbelfnuttarna.

Kod: Markera allt

FIL2=~/"tillfälligt/test"

SV: Mysko problem med skalvariabler

Postat: 29 jul 2007, 22:24
av Emil.s
Aha. Tackar tackar! :)