Thread View: pl.comp.lang.tcl
6 messages
6 total messages
Started by T
Fri, 01 Feb 2008 16:20
Jak sobie z tym radzicie?
Author: T
Date: Fri, 01 Feb 2008 16:20
Date: Fri, 01 Feb 2008 16:20
15 lines
1110 bytes
1110 bytes
Prosty przykład: puts [exec abc] Problem powstanie gdy "abc" zwróci coś z [] itp. Można oczywiście przelecieć output regsubem czy czymś podobnym ale tego zdecydowanie chciałbym uniknąć ze względu na słabą wydajność. Przypuszczam, że rozwiązanie tego problemu może być trywialne, ale nic nie przychodzi mi na myśl. Może ktoś z Was juz to przerabiał i znalazł dobre rozwiązanie? -- http://tomasz.insane.pl
Re: Jak sobie z tym radzicie?
Author: Stachu 'Dozzie' K.
Date: Fri, 01 Feb 2008 16:28
Date: Fri, 01 Feb 2008 16:28
27 lines
1507 bytes
1507 bytes
On 01.02.2008, T <t@invalid.invalid> wrote:
> Prosty przykład:
>
> puts [exec abc]
>
> Problem powstanie gdy "abc" zwróci coś z [] itp.
Naprawdę? To mój tclsh jeszcze o tym nie wie.
#v+
[dozzie@dynamit dozzie]$ tclsh <<<'puts [exec echo {aaa[]bbb}]'
aaa[]bbb
[dozzie@dynamit dozzie]$
#v-
> Można oczywiście przelecieć output regsubem czy czymś podobnym ale tego
> zdecydowanie chciałbym uniknąć ze względu na słabą wydajność.
>
> Przypuszczam, że rozwiązanie tego problemu może być trywialne, ale nic
> nie przychodzi mi na myśl.
>
> Może ktoś z Was juz to przerabiał i znalazł dobre rozwiązanie?
Błąd masz gdzieś indziej.
--
Secunia non olet.
Stanislaw Klekot
Re: Jak sobie z tym radzicie?
Author: T
Date: Fri, 01 Feb 2008 17:10
Date: Fri, 01 Feb 2008 17:10
15 lines
1064 bytes
1064 bytes
Stachu 'Dozzie' K. pisze:
>> puts [exec abc]
>>
>> Problem powstanie gdy "abc" zwróci coś z [] itp.
>
> Naprawdę? To mój tclsh jeszcze o tym nie wie. #v+
> [dozzie@dynamit dozzie]$ tclsh <<<'puts [exec echo {aaa[]bbb}]' aaa[]bbb
> [dozzie@dynamit dozzie]$
> #v-
Przecież podałem inny przykład, bez parametrów.
--
http://tomasz.insane.pl
Re: Jak sobie z tym radzicie?
Author: Stachu 'Dozzie' K.
Date: Fri, 01 Feb 2008 17:23
Date: Fri, 01 Feb 2008 17:23
33 lines
1723 bytes
1723 bytes
On 01.02.2008, T <t@invalid.invalid> wrote:
> Stachu 'Dozzie' K. pisze:
>
>>> puts [exec abc]
>>>
>>> Problem powstanie gdy "abc" zwróci coś z [] itp.
>>
>> Naprawdę? To mój tclsh jeszcze o tym nie wie. #v+
>> [dozzie@dynamit dozzie]$ tclsh <<<'puts [exec echo {aaa[]bbb}]' aaa[]bbb
>> [dozzie@dynamit dozzie]$
>> #v-
>
> Przecież podałem inny przykład, bez parametrów.
A co to ma do rzeczy? Zawsze wydawało mi się, że do pisania programów
trzeba rozumieć, co się robi... Ale niech będzie, że to może być
istotne.
#v+
[dozzie@dynamit dozzie]$ cat > blah.sh
#!/bin/sh
echo 'aaa[]bbb'
[dozzie@dynamit dozzie]$ chmod a+x blah.sh
[dozzie@dynamit dozzie]$ ./blah.sh
aaa[]bbb
[dozzie@dynamit dozzie]$ tclsh <<<'puts [exec ./blah.sh]'
aaa[]bbb
[dozzie@dynamit dozzie]$
#v-
--
Secunia non olet.
Stanislaw Klekot
Re: Jak sobie z tym radzicie?
Author: ZB
Date: Fri, 01 Feb 2008 18:19
Date: Fri, 01 Feb 2008 18:19
25 lines
1300 bytes
1300 bytes
Dnia 01.02.2008 Stachu 'Dozzie' K. napisał/a:
>> Prosty przykład:
>>
>> puts [exec abc]
>>
>> Problem powstanie gdy "abc" zwróci coś z [] itp.
>
> Naprawdę? To mój tclsh jeszcze o tym nie wie.
> #v+
> [dozzie@dynamit dozzie]$ tclsh <<<'puts [exec echo {aaa[]bbb}]'
> aaa[]bbb
> [dozzie@dynamit dozzie]$
> #v-
Być może Koledze chodzi o sytuacje bardziej specyficzne, np.:
puts [exec echo [info body]]
Wtedy może coś takiego wystarczy? Przykład dla Tcl 8.5:
puts [exec {*}{echo [info body]}]
--
ZB
Re: Jak sobie z tym radzicie?
Author: Artur
Date: Sat, 02 Feb 2008 10:26
Date: Sat, 02 Feb 2008 10:26
23 lines
1764 bytes
1764 bytes
On 1 Feb., 17:20, T <t...@invalid.invalid> wrote: > Prosty przykład: > > puts [exec abc] > > Problem powstanie gdy "abc" zwróci coś z [] itp. > Można oczywiście przelecieć output regsubem czy czymś podobnym ale tego > zdecydowanie chciałbym uniknąć ze względu na słabą wydajność. > W Tcl substytucja jest dokonywana tylko jeden raz. Czyli tylko na pierwszym poziomie (to co widać). dlatego nie ma problemu jeśli [exec abc] zwróci jekieś [] lub $. Jakby się chciało wykonać następnej substytucji to trzeba by było napisać puts [subst [exec abc]] albo puts [eval [exec abc]] Opisuje to dobrze http://wiki.tcl.tk/3205 Artur
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads