Bun, asta inseamna ca m-am inselat in feeling-ul meu si bash este in
stare sa faca substitutia de variabile inainte de a executa case-ul.
Partea asta insa cu "a | b" sigur nu va merge dat fiind ca "a | b" este
un string. Sintaxa case-ului poate de forma "case $var in pattern1 |
pattern2... ".
Nu poti de exemplu sa pui parti din fraza sintactica intr-o variabila si
sa te astepti ca bash-ul sa faca multiparsing (un parser sa substituie
variabila dupa care sa vina alt parser care sa interpreteze fraza). E ca
si cum ai da
x="if true; then echo ok; fi"
si te-ai astepta ca
$x
sa-ti afiseze ok.
Poti in schimb sa faci alta chestie. Sa faci un script care sa genereze
alt script si care sa-l execute alt proces bash.
Gen: genscript | bash
rpetre wrote:
>uite:
>
>~# cat test
>#!/bin/bash
>i="a"
>j="a"
>
>case $i in
>
>"$j" ) echo 2
>;;
>esac
>~# sh test
>2
>
>merge, dar cu j="a | b" nu merge...
>
>
---
Detalii despre listele noastre de mail: http://www.lug.ro/