Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: problem z cudzyslowami  (Przeczytany 4285 razy)

bartekn80

  • Gość
problem z cudzyslowami
« dnia: 2008-01-26, 15:35:21 »
Witam mam taki problem

mam takie cos :

perl -e '@i=split(/\\|/,"jeden|dwa|trzy"); print $i[1];'

ta linijka dziala prawidlowo wyskakuje czesc "dwa" jednak jak bedzie :

perl -e '@i=split(/\\|/,"je"d"en|d"w"a|t"r"zy"); print $i[1];'

to juz wystepuje blad

o to chodzi ze bash interpretuje cudzyslowie. wie ktos jak z tym sobie poradzic ?

norbert_ramzes

  • Gość
problem z cudzyslowami
« Odpowiedź #1 dnia: 2008-01-26, 15:39:16 »
Może tak: \\"

bartekn80

  • Gość
problem z cudzyslowami
« Odpowiedź #2 dnia: 2008-01-26, 20:54:25 »
wszystko bylo by dobrze gdyby mogl bym ruszycz tekst ktory ma byc pociety a ktory zawiera cudzyslowy i nie moge tam dac slesha.

chmooreck

  • Gość
problem z cudzyslowami
« Odpowiedź #3 dnia: 2008-01-26, 21:23:55 »
skąd bierzesz ten tekst ? bo skoro nie możesz go ruszysz, to pewnie nie wpisujesz go z palca ?

możesz opisać trochę więcej jakiego typu to jest zadanie, może jest również inne rozwiązanie ;-)

P.S. backslasha

bartekn80

  • Gość
problem z cudzyslowami
« Odpowiedź #4 dnia: 2008-01-27, 00:23:17 »
no wiec o to chodzi ze od jakiegos zasu eksperymentuje sobie z menarzerem okien fvwm. Jak sie go troche skonfiguruje jest naprawde fajny.  I zwiazku z tym spobowalem stworzyc wlasnej roboty edytor menu, ktory by modyfikowal plik konfiguracyjny fvwm2rc. A narazie mi z tego wyszlo takie cos :

skrypt editmenu

WindowTitle {Modyfikacja Menu}
WindowSize 500 300
WindowPosition 100 300

Init
Begin
Set $menus={perl $HOME/.fvwm/scripts/editmenu.pl 1}
Set $menus=(GetOutput $menus 1 -1)
ChangeTitle 1 $menus
Set $click=0
End

Widget 1

Property
Type List
Position 10 20
Flags NoReliefString
Size 190 150
Title {                }

Main
Case message of
SingleClic:
Begin
   Set $item=(GetValue 1)
   Set $click=(Add $click 1)
   If $olditem==$item Then
Begin
   If $click==1 Then
    Set $select=(GetValue 1)
Set $select=(Add $select -1)
Set $sel={perl -e '@i=split(/\\|/,"} $menus {"); print $i[} $select {];'}
Set $select=(GetOutput $sel 1 -1)
Set $cmd={perl $HOME/.fvwm/scripts/editmenu.pl 2 "} $select {"}
Set $dane=(GetOutput $cmd 1 -1)
Set $submenu={perl $HOME/.fvwm/scripts/editmenu.pl 3 '} $dane {'}
Set $submenu=(GetOutput $submenu 1 -1)
Set $click=0
ChangeTitle 1 $submenu
End
Else
Begin
Set $olditem=$item
   Set $click=0
End    
End
End

Widget 2

Property
Type PushButton
Position 220 20
Flags NoReliefString
Size 50 20
Title {Dodaj Pozycje}

Main
Case message of
    SingleClic:
    Begin
Set $s=(GetValue 1)
Set $s=(Add $s -1)
Set $ss={perl -e '@i=split(/\\|/,""} $dane {""); print $i[1];'}
Set $ss=(GetOutput $ss 1 -1)
ChangeTitle 3 $ss
    End
End

Widget 3

Property
Type TextField
Position 220 70
Flags NoReliefString
Size 140 20
Title {}

Main
Case message of
    SingleClic:
    Begin
    End
End

Widget 4

Property
Type TextField
Position 220 120
Flags NoReliefString
Size 140 20
Title {}

Main
Case message of
    SingleClic:
    Begin
    End
End
scrypt editmenu.pl - perl

$r="";
if ($ARGV[0]==1) {
    open(P,"/home/fpanki/.fvwm/.fvwm2rc");
    $w="AddToMenu";
    while ($l=

) {
$t=substr($l,0,9);
if($t eq $w) {
   $r.=substr($l,10,-1)."|";
}
    }
    close(P);
    $r=substr($r,0,-1);
    print $r;
}

if ($ARGV[0]==2) {
@wybor=split(/\\|/,$ARGV[1]);
open(P, "/home/fpanki/.fvwm/.fvwm2rc");
$w="AddToMenu ".$wybor[$ARGV[2]];
while ($l=

) {
$t=substr($l,0,-1);
if($t eq $w) {
    $o=1;
}
if($t eq "#endmenu") {
$o=0;
break;
}
if($o==1){
$r.=$t."|";
}
}
$r=substr($r,0,-1);
print $r;
close(P);
}
if ($ARGV[0]==3) {
@dane=split(/\\|/, $ARGV[1]);
foreach $linia(@dane){
@slinia=split(/"/, $linia);
if ($slinia[1] ne "") {
$r.=$slinia[1]."|";
}
}
$r=substr($r,0,-1);
print $r;
}