Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Instalace, aktualizace a spouštění => Téma založeno: miro_ 19 Července 2021, 17:53:07

Název: Problem s funkcnosti spoustece pro '.sh' (na U20mate) ...
Přispěvatel: miro_ 19 Července 2021, 17:53:07
Delsi dobu uzivam spoustec (vytvoreny z plochy) 'ping.sh' s nasledujicim obsahem:
Citace
#!/bin/bash
echo -e -n  '\n Test funkcnosti cest
echo -e -n '\n WiFi modem \n'
ping 172.20.1.1  -c 5
....
echo -e -n '\n www.seznam.cz\n'
ping 77.75.79.53  -c 5
Chtel jsem podobne vytvorit spoustec 'copy_ap.sh'.
Citace
#!/ bin/bash
cp -i ~/__CB_prj_/grafy_fram/bin/Debug/g_fro_fram ~/__DATA_mereni_/__fram_/_graph_/
Volani z terminalu pres 'sh ./copy_ap.sh' je funkcni.
Pri volani spoustecem se ale 'cp' neprovadi ! Jen problikne okno terminalu.
Pokud predradim 'sudo cp ....' spoustec 'copy_ap.sh' se v terminalu ok zastavi
a OK pozaduje heslo ale obsah za ('cp..') se zase neprovede.

Pokousel jsem se neco o tomto problemu dohledat na webu ale neuspel jsem.
V cem je problem ?
Název: Re:Problem s funkcnosti spoustece pro '.sh' (na U20mate) ...
Přispěvatel: TIBOR 19 Července 2021, 21:22:50
Medzi / a bin/ v "#!/ bin/bash" mas medzeru.
Název: Re:Problem s funkcnosti spoustece pro '.sh' (na U20mate) ...
Přispěvatel: miro_ 19 Července 2021, 22:41:21
Dik za upozorneni, po oprave je to stejne, spoustec neni funkcni !, '.sh' soubor z terminalu fungue OK !
Název: Re:Problem s funkcnosti spoustece pro '.sh' (na U20mate) ...
Přispěvatel: Ventero 20 Července 2021, 08:47:27
Máš nastavená práva a spustitelnost?
Název: Re:Problem s funkcnosti spoustece pro '.sh' (na U20mate) ...
Přispěvatel: miro_ 20 Července 2021, 11:02:19
Prava jsem samozrejme nastavoval !

Zkusil jsem za  povel 'cp' pridat jeste test ping. (Edici  '.sh' i spoustece provadim v 'Geany'.)
Citace
echo -e -n '\n www.seznam.cz\n'
ping 77.75.79.53  -c 5

I po teto uprave je v U20mate spoustec nefunkcni !

Napadlo mne, poslat '.sh' soubor i spoustec pres domaci sit do jineho PC s  U16.04 a zkusit to tam.
K memu prekvapeni tam spoustec s '.sh' funguje OK bez jakychkoli uprav (jen jsem musel samozrejme povolit spousteni prekopirovaneho spoustece) !!
(Ten chodici  test  'ping' z uvodu vlakna byl puvodne vytvaren a  kopirovan do U20mate z jineho PC s U16.04 !)
Vypada to na nejakou  zahadu tvorby spoustece v U20mate.



 
Název: Re:Problem s funkcnosti spoustece pro '.sh' (na U20mate) ...
Přispěvatel: juwa2 20 Července 2021, 12:33:24
Složitější příkazy do spouštěčů (soubor *.desktop) piš vždy ve tvaru
Kód: [Vybrat]
Exec=sh -c "příkaz"
Takto lze do spouštěčů psát i vícenásobné příkazy (bez nutnosti používat mezičlánek ve formě skriptu).
Kód: [Vybrat]
Exec=sh -c "příkaz1 && příkaz2"
Název: Re:Problem s funkcnosti spoustece pro '.sh' (na U20mate) ...
Přispěvatel: TIBOR 20 Července 2021, 15:29:47
Dik za upozorneni, po oprave je to stejne, spoustec neni funkcni !, '.sh' soubor z terminalu fungue OK !
To je divne ja mam tiez Ubuntu Mate 20.04 a skript s cp funguje aj ked ho volam spustacom vytvorenym na ploche. Ako vytvaras ten spustac.
Název: Re:Problem s funkcnosti spoustece pro '.sh' (na U20mate) ...
Přispěvatel: West 20 Července 2021, 16:17:11
Ešte vyskúšaj pred príkaz "cp" dať kompletnú cestu k príkazu "cp". Ak nepomôže, tak ešte namiesto "~/" dosad celú cestu.
Název: Re:Problem s funkcnosti spoustece pro '.sh' (na U20mate) ...
Přispěvatel: miro_ 21 Července 2021, 22:14:08
Nasel jsem v cem mam problem.
V diskuzi zde jsem neuvedl ze '.sh' soubor jsem nemel v '/home'. Pokud jej dam do '/home' tak spoutec pracuje OK.
( Spoustec 'ping' mi sel  protoze 'ping.sh' jsem mel v '/home'. Podobne to bylo v U16. Tam jsem to nakopiroval pres sit do jeho '/home ')

Název: Re:Problem s funkcnosti spoustece pro '.sh' (na U20mate) ...
Přispěvatel: Ventero 22 Července 2021, 08:10:51
Tak že by přeci jen ta práva? V /home stačí oprávnění uživatele, jinde musí být práva root. Nebo se mýlím?
Název: Re:Problem s funkcnosti spoustece pro '.sh' (na U20mate) ...
Přispěvatel: singularis 23 Července 2021, 07:13:40
Tak že by přeci jen ta práva? V /home stačí oprávnění uživatele, jinde musí být práva root. Nebo se mýlím?

S tím rootem určitě ne, problém musí být v něčem jiném. Ale nejprve je potřeba začít rozlišovat mezi spouštěči (*.application) a skripty (*.sh), protože každý z nich může v GUI fungovat jinak.

U skriptu je potřeba zjistit vlastnictví. Pokud je vlastníkem skriptu jiný uživatelský účet než ten, pod kterým se uživatel snaží skript spustit, je potřeba to zvlášť ošetřit. Také je třeba ověřit, že cílový uživatelský účet má přístup do adresáře, kde je skript uložen (což ale v tomto případě zřejmě platilo).

Vtip je v tom, že když obyčejný uživatel (ne-root) zkopíruje soubor z jednoho adresáře do druhého, automaticky tím přebere vlastnictví na sebe, takže by v podstatě stačilo skript zkopírovat o adresář vedle, původní smazat, přesunout kopii nazpět a mohl by začít fungovat.
Název: Re:Problem s funkcnosti spoustece pro '.sh' (na U20mate) ...
Přispěvatel: toudy 23 Července 2021, 23:43:14
Nasel jsem v cem mam problem.
V diskuzi zde jsem neuvedl ze '.sh' soubor jsem nemel v '/home'. Pokud jej dam do '/home' tak spoutec pracuje OK.
( Spoustec 'ping' mi sel  protoze 'ping.sh' jsem mel v '/home'. Podobne to bylo v U16. Tam jsem to nakopiroval pres sit do jeho '/home ')

Zlozka /home patri uzivatelovi root a skupine root

Zlozka /home/user patri uzivatelovi user a skupine user

Tak
Název: Re:Problem s funkcnosti spoustece pro '.sh' (na U20mate) ...
Přispěvatel: miro_ 24 Července 2021, 12:35:11
Diky za upozorneni.  Blbe jsem to napsal. Opravuji a doplnuji:

V diskuzi zde jsem neuvedl ze '.sh' soubor jsem nemel v '/home/user'. Pokud jej dam do '/home/user' tak spoutec pracuje OK.
( Spoustec 'ping' mi sel  protoze 'ping.sh' jsem mel v '/home/user'. Podobne to bylo v U16. Tam jsem to nakopiroval pres sit do jeho '/home/user')