[Rozw.]Błąd w składni Bash

Problemy dotyczące programowania.

Moderatorzy: Moderatorzy, Administratorzy

PITbull
Użytkownik
Posty: 158
Rejestracja: 2004-10-19, 18:50

[Rozw.]Błąd w składni Bash

Post autor: PITbull »

Mam mały problem.
Komenda

Kod: Zaznacz cały

IFS=x+ read w h x y < <(xrectsel)

podana na konsoli ładnie przyporządkowuje poszczególne wartości pikseli do zmiennych po zaznaczeniu myszą prostąkątu na ekranie jak widać poniżej.

Kod: Zaznacz cały

[16:24:48 --> pi in FFcast2-master]$ xrectsel 
262x64+677+578
[16:38:40 --> pi in FFcast2-master]$ IFS=x+ read w h x y < <(xrectsel)
[16:38:53 --> pi in FFcast2-master]$ echo $w
262
[16:39:24 --> pi in FFcast2-master]$ echo $h
64
[16:39:58 --> pi in FFcast2-master]$ echo $x
677
[16:40:04 --> pi in FFcast2-master]$ echo $y
578
niestety jak wrzucę ją do skryptu to wyrzuca błąd tego typu:
nowy: line 2: błąd składni przy nieoczekiwanym znaczniku `<'
nowy: line 2: `IFS=x+ read w h x y< <(xrectsel)'
NIe jestem orłem więc z zapytaniem :Gdzie robie błąd?
Ostatnio zmieniony 2013-11-06, 21:42 przez PITbull, łącznie zmieniany 1 raz.
Awatar użytkownika
dienet
Moderator
Posty: 2105
Rejestracja: 2007-07-24, 18:58
Lokalizacja: Racibórz/Rybnik

Re: Błąd w składni Bash

Post autor: dienet »

Używaj bash, a nie sh ;)

Kod: Zaznacz cały

|(dienet@t61)~|$ cat z.sh  
#!/bin/bash
IFS=x+
read w h x y < <(echo "262x64+677+578")
echo $w
|(dienet@t61)~|$ sh z.sh 
z.sh: line 3: syntax error near unexpected token `<'
z.sh: line 3: `read w h x y < <(echo "262x64+677+578")'
|(dienet@t61)~|$ bash z.sh 
262
Pozdr0
dienet
[img]http://i164.photobucket.com/albums/u19/slawek15/kotekeo0lq3.jpg[/img]
PITbull
Użytkownik
Posty: 158
Rejestracja: 2004-10-19, 18:50

Re: Błąd w składni Bash

Post autor: PITbull »

No tak. :ok: O tym nie pomyślałem :-)
Dzięki .

Rozwiązałem to jednak tak bez wymuszania bash-a z konsoli.

Kod: Zaznacz cały

var=$(xrectsel)
IFS=x+ read w h z y <<< "$var"
ODPOWIEDZ