Fórum Root.cz

Hlavní témata => Server => Téma založeno: scientific 12. 03. 2019, 12:37:36

Název: Příkaz funguje, ale ve skriptu nikoliv
Přispěvatel: scientific 12. 03. 2019, 12:37:36
Ahoj, prosím si informaci, co dělám špatně. Když níže uvedený příkaz z echo odešlu do terminálu tak funguje, ale jak je níže vidět, tak pokud je ten příkaz zpracováván v rámci skriptu, tak nefunguje.

Zdrojový kód:
Kód: [Vybrat]
EXECUTE="/opt/rh/$DEPENDENCY/root/usr/bin/pg_dump $DATABASE > $DST/$NAME"
EXECUTE="$DEPENDENCY \"sudo -Hiu postgres $EXECUTE\""
EXECUTE="scl enable $EXECUTE"
echo $EXECUTE
echo "$($EXECUTE)"

Co píše echo:
Kód: [Vybrat]
scl enable rh-postgresql94 "sudo -Hiu postgres /opt/rh/rh-postgresql94/root/usr/bin/pg_dump template1 > /srv/pathto/postgresql/rh-postgresql94/template1/2019-03-12.sql.gz"
Co píše zpracování příkazu:
Kód: [Vybrat]
Unable to open /etc/scl/conf/"sudo!
Máte prosím někdo nápad v čem by mohla být chyba, když příkaz funguje, ale ve skriptu tentýž příkaz nefunguje? Je potřeba to nějak přezávorkovat?


Název: Re:Příkaz funguje, ale ve skriptu nikoliv
Přispěvatel: Mirek Prýmek 12. 03. 2019, 13:11:34
Máte prosím někdo nápad v čem by mohla být chyba
Tento radek velmi pravdepodobne nedela to, co si myslis, ze dela:

Kód: [Vybrat]
echo "$($EXECUTE)"
Název: Re:Příkaz funguje, ale ve skriptu nikoliv
Přispěvatel: scientific 12. 03. 2019, 13:29:23
Jo to echo jsem už dávno smazal, zbylo tam:
Kód: [Vybrat]
$($EXECUTE)
Ale problém přetrvává.

Jak bych měl ten vymodelovaný příkaz z proměnné $EXECUTE spouštět korektněji?

Název: Re:Příkaz funguje, ale ve skriptu nikoliv
Přispěvatel: Mirek Prýmek 12. 03. 2019, 13:42:38
Jo to echo jsem už dávno smazal, zbylo tam:
Kód: [Vybrat]
$($EXECUTE)
Coz je porad spatne. Nastuduj si, co $(...) dela.
Název: Re:Příkaz funguje, ale ve skriptu nikoliv
Přispěvatel: snuff1987 12. 03. 2019, 13:52:45
Netusim co chces tym skriptom dokazat, ale ked uz skladas prikazy skus pouzit "eval" alebo si vyescapuj uvodzovky
Název: Re:Příkaz funguje, ale ve skriptu nikoliv
Přispěvatel: scientific 12. 03. 2019, 14:07:23
Jupí už mi to funguje, použil jsem:
$(eval $EXECUTE)

Přitom o několik řádků výše jsem eval použil minule, ale už jsem na to zapomněl proč jsem to udělal a jak to funguje.

Vyescapuj to jsem přece dělal? To jsou ty zpětné lomítka před uvozovkami, aby se neukončovaly ty příkazy ne? Nebo jak jsi to myslel? Podle mě jsem to vyescapoval, ale možná si to nějak pletu.

Každopádně děkuji za připomenutí eval, pomohlo mi to. Díky moc.
Název: Re:Příkaz funguje, ale ve skriptu nikoliv
Přispěvatel: starejkarlik 12. 03. 2019, 14:59:15
Nemůžeš použít  třeba sshfs, z Win si připojíš používaný adresář a pak už si ve Win edituješ čím chceš?