Spuštění program v příkazovém řádku na Linuxu

Spuštění program v příkazovém řádku na Linuxu
« kdy: 21. 09. 2019, 08:38:41 »
Ahoj všem, potřebovala bych poradit.

V linuxu ve složce třeba "/home/111/222/333/" mám program "ABC"
Když spustím příkazový řádek mám tam "zuzu@linux:~$"
Přejdu do složky "333" a zadám "cd /home/111/222/333/"
Dostanu: zuzu@linux:~/111/222/333$ (Kde je program "ABC" to si ověřím pomocí příkazu ls)

Ale nemohu přijít na to jak ten program spustit, když zadám pouze název programu ABC nic se nestane.
Zkoušela jsem "sh ABC" ale napíšeto:
rclone: 1: ABC: ELF: not found
rclone: 4: ABC: Syntax error: word unexpected (expecting ")")


Ale zjistila jsem že funguje když zadám celou cestu i s programem takto:
'/home/111/222/333/ABC'

ale přece když už jsem v tom adresáři "333" tak by měl jít ten program nějak spustit?


Re:Spuštění program v příkazovém řádku na Linuxu
« Odpověď #1 kdy: 21. 09. 2019, 08:58:35 »
./ABC

Re:Spuštění program v příkazovém řádku na Linuxu
« Odpověď #2 kdy: 21. 09. 2019, 10:00:02 »
ale přece když už jsem v tom adresáři "333" tak by měl jít ten program nějak spustit?

Tak to funguje v DOSu, ne v unix-like systémech.

Správný postup už tu padnul, ještě trochu vysvětlení.

Spouštějí se programy z adresářů, které jsou vyjmenované v proměnné PATH.

U ostatních musíš zadat cestu, ať už absolutní nebo relativní. V tomhle případě byla rada použít  jako adresář tečku - tečka je aktuální adresář podobně jako .. je nadřazený adresář k aktuálnímu

Re:Spuštění program v příkazovém řádku na Linuxu
« Odpověď #3 kdy: 21. 09. 2019, 11:25:25 »
Děkuji za vysvětlení, ještě bych se zeptala na jednu věc  ::)

Ve Windows mám skript třeba setup.bat (Zobrazí se příkazový řádek s informacemi programu dám mezerník a skript se ukončí) to stejné bych chtěla v Linuxu ale nevím jak toho docílit.

Kód: [Vybrat]
ABC testovani
pause

setup.sh
Tohle mi nic neudělá
Kód: [Vybrat]
#!/bin/bash
./ABC testovani
pause
program "ABC" je ve stejné složce jako "setup.sh"

Re:Spuštění program v příkazovém řádku na Linuxu
« Odpověď #4 kdy: 21. 09. 2019, 11:39:11 »
Teď dotaz nechápu.


ByCzech

  • *****
  • 1 792
    • Zobrazit profil
    • E-mail
Re:Spuštění program v příkazovém řádku na Linuxu
« Odpověď #5 kdy: 21. 09. 2019, 11:52:55 »
Děkuji za vysvětlení, ještě bych se zeptala na jednu věc  ::)

Ve Windows mám skript třeba setup.bat (Zobrazí se příkazový řádek s informacemi programu dám mezerník a skript se ukončí) to stejné bych chtěla v Linuxu ale nevím jak toho docílit.

Kód: [Vybrat]
ABC testovani
pause

setup.sh
Tohle mi nic neudělá
Kód: [Vybrat]
#!/bin/bash
./ABC testovani
pause
program "ABC" je ve stejné složce jako "setup.sh"

batch soubor z DOS/Windows logicky nebude fungovat v Linux/Unix like světě. Shell skripty mají svou syntaxi, své příkazy (značně bohatší než DOS batch soubory) - je to prostě jiný "jazyk". Takže doporučuji nastudovat programování shell skriptů, pak docílíte toho, že budete vědět jak udělat ekvivalent vašeho batch souboru jako shell skript.

Pro čtení kláves můžete zkusit např. "read". Viz třeba zde: https://unix.stackexchange.com/questions/134437/press-space-to-continue
« Poslední změna: 21. 09. 2019, 11:56:04 od ByCzech »

Re:Spuštění program v příkazovém řádku na Linuxu
« Odpověď #6 kdy: 21. 09. 2019, 13:01:51 »
Já něco takového potřebuji jednou za dva roky, kvůli tomu se opravdu nebudu učit celou syntaxi v Linuxu.
Jestli odpověď neznáte nebo nechcete poradit, nemusíte nic psát.

Ale zopakovat důvod proč jsem zde napsala, že samozřejmě Windows má jinou syntaxi než  Linux a dát mi první odkaz který vám google vyhodí je opravdu pomoc k nezaplacení.
root.cz je české diskuzní fórum a až budu chtít radu na jiném zahraničním webu budu psát tam.

Potřebuji pouze zobrazit výstup informací z aplikace, to se ve Windows dělá nejčastěji že se dá na konec skriptu pause v Linuxu něco takového jednoduchého tedy neexistuje?

ByCzech

  • *****
  • 1 792
    • Zobrazit profil
    • E-mail
Re:Spuštění program v příkazovém řádku na Linuxu
« Odpověď #7 kdy: 21. 09. 2019, 13:08:49 »
Já něco takového potřebuji jednou za dva roky, kvůli tomu se opravdu nebudu učit celou syntaxi v Linuxu.
Jestli odpověď neznáte nebo nechcete poradit, nemusíte nic psát.

Ale zopakovat důvod proč jsem zde napsala, že samozřejmě Windows má jinou syntaxi než  Linux a dát mi první odkaz který vám google vyhodí je opravdu pomoc k nezaplacení.
root.cz je české diskuzní fórum a až budu chtít radu na jiném zahraničním webu budu psát tam.

Potřebuji pouze zobrazit výstup informací z aplikace, to se ve Windows dělá nejčastěji že se dá na konec skriptu pause v Linuxu něco takového jednoduchého tedy neexistuje?

Já vám ale poradil a přesně, včetně toho jak to udělat, první odkaz z Google, skripty psát umím, ale lenivce, co se odmítají něco naučit a jen chtějí, aby to za ně někdo oddřel, nepodporuju. A je irelevantní jak často to potřebuje. Radu máte a přesnou, nelíbí se vám, nic se neděje, ale stavět mě do latě je k ničemu, nejsem váš slouha ;D a nic mi neplatíte, takže tímhle mě k pomoci zdarma namotivujete dost těžko :P

ByCzech

  • *****
  • 1 792
    • Zobrazit profil
    • E-mail
Re:Spuštění program v příkazovém řádku na Linuxu
« Odpověď #8 kdy: 21. 09. 2019, 13:16:47 »
první odkaz z Google

"... jsem vám neposlal" mělo být

Re:Spuštění program v příkazovém řádku na Linuxu
« Odpověď #9 kdy: 21. 09. 2019, 13:33:12 »

Kit

  • ****
  • 494
    • Zobrazit profil
    • E-mail
Re:Spuštění program v příkazovém řádku na Linuxu
« Odpověď #10 kdy: 21. 09. 2019, 13:55:56 »
Potřebuji pouze zobrazit výstup informací z aplikace, to se ve Windows dělá nejčastěji že se dá na konec skriptu pause v Linuxu něco takového jednoduchého tedy neexistuje?

Ten "read" nepomohl?

To pauznutí na konci skriptu ve Windows je podivný zvyk, který se v linuxových systémech nepoužívá. Není potřebný a byl by i kontraproduktivní.
« Poslední změna: 21. 09. 2019, 13:57:43 od Kit »

ByCzech

  • *****
  • 1 792
    • Zobrazit profil
    • E-mail
Re:Spuštění program v příkazovém řádku na Linuxu
« Odpověď #11 kdy: 21. 09. 2019, 14:35:53 »
Potřebuji pouze zobrazit výstup informací z aplikace, to se ve Windows dělá nejčastěji že se dá na konec skriptu pause v Linuxu něco takového jednoduchého tedy neexistuje?

Ten "read" nepomohl?

To pauznutí na konci skriptu ve Windows je podivný zvyk, který se v linuxových systémech nepoužívá. Není potřebný a byl by i kontraproduktivní.

Ten podivný zvyk vycházï z toho, že spuštění BATCH souboru typicky z Průzkumníka hned po jeho ukončení zavře okno s příkazovou řádkou, takže se nedovíte jak to dopadlo a co to vypsalo.
« Poslední změna: 21. 09. 2019, 14:38:00 od ByCzech »

Kit

  • ****
  • 494
    • Zobrazit profil
    • E-mail
Re:Spuštění program v příkazovém řádku na Linuxu
« Odpověď #12 kdy: 21. 09. 2019, 14:59:32 »
Potřebuji pouze zobrazit výstup informací z aplikace, to se ve Windows dělá nejčastěji že se dá na konec skriptu pause v Linuxu něco takového jednoduchého tedy neexistuje?

Ten "read" nepomohl?

To pauznutí na konci skriptu ve Windows je podivný zvyk, který se v linuxových systémech nepoužívá. Není potřebný a byl by i kontraproduktivní.

Ten podivný zvyk vycházï z toho, že spuštění BATCH souboru typicky z Průzkumníka hned po jeho ukončení zavře okno s příkazovou řádkou, takže se nedovíte jak to dopadlo a co to vypsalo.

Mělo by stačit vytvořit zástupce, ve kterém se to okno podrží otevřené. Jenže to by bylo moc práce navíc...

Re:Spuštění program v příkazovém řádku na Linuxu
« Odpověď #13 kdy: 21. 09. 2019, 15:00:07 »
Potřebuji pouze zobrazit výstup informací z aplikace, to se ve Windows dělá nejčastěji že se dá na konec skriptu pause v Linuxu něco takového jednoduchého tedy neexistuje?

Ten "read" nepomohl?

To pauznutí na konci skriptu ve Windows je podivný zvyk, který se v linuxových systémech nepoužívá. Není potřebný a byl by i kontraproduktivní.

Ten podivný zvyk vycházï z toho, že spuštění BATCH souboru typicky z Průzkumníka hned po jeho ukončení zavře okno s příkazovou řádkou, takže se nedovíte jak to dopadlo a co to vypsalo.

A v linuxu v GUI to funguje stejně - pokud spustím skript z GUI („spustit v terminálu“) tak okno terminálu jen problikne. Pak ten "read" na konci skriptu pomůže. Což je ale otázka, zda to je nevhodnější způsob zobrazení informací z shellu v GUI. IMHO na to standard neexistuje (což je trošku fail). Alternativy:

Kód: [Vybrat]
#!/bin/bash

echo "AHOJ";
read;

#eof

Kód: [Vybrat]
#!/bin/bash

echo "AHOJ" | xless;

#eof
« Poslední změna: 21. 09. 2019, 15:02:38 od Ondrej Nemecek »

ByCzech

  • *****
  • 1 792
    • Zobrazit profil
    • E-mail
Re:Spuštění program v příkazovém řádku na Linuxu
« Odpověď #14 kdy: 21. 09. 2019, 15:04:36 »
Potřebuji pouze zobrazit výstup informací z aplikace, to se ve Windows dělá nejčastěji že se dá na konec skriptu pause v Linuxu něco takového jednoduchého tedy neexistuje?

Ten "read" nepomohl?

To pauznutí na konci skriptu ve Windows je podivný zvyk, který se v linuxových systémech nepoužívá. Není potřebný a byl by i kontraproduktivní.

Ten podivný zvyk vycházï z toho, že spuštění BATCH souboru typicky z Průzkumníka hned po jeho ukončení zavře okno s příkazovou řádkou, takže se nedovíte jak to dopadlo a co to vypsalo.

Mělo by stačit vytvořit zástupce, ve kterém se to okno podrží otevřené. Jenže to by bylo moc práce navíc...

Co naděláte, uživatel chce kliknout a hotovo, nechce před spouštěním vytvářet zástupce a nastavovat ho. A baťáky se zpravidla se zástupci nedodávají.