Fórum Ubuntu CZ/SK

Ostatní => Archiv => Téma založeno: Libor Šedivý 11 Června 2006, 15:23:33

Název: Náhrada *.BAT v linuxu [vyřešeno]
Přispěvatel: Libor Šedivý 11 Června 2006, 15:23:33
Dobrý den,

sice nejsem naprostý začátečník, ale takto trapný dotaz jsem musel dát do této kategorie :). Kdysi jsem v DOSu pracoval s *.bat soubory. Vím, že i pro linux existuje tato vychytávka. Našel jsem něco o nějakých souborech *.sh, ale moc se v tom nevyznám. Jde o to, že chci vytvořit "dávkový soubor", který by spustil příkaz pro konzoli - "mplayer mms://82.208.28.37/fajn32". Jen toto, jak trapně prosté. No a další věc, jak ten soubor potom spustím? "./script.sh" nebo jinak? Chtěl bych to potom umístit na plochu či někam do menu.

A potom by mě zajímalo, jestli o tomto někde nenajdu více informací, ještě jsem to na linuxu nezkoušel, nanejvíš jako menší zlo ve Windows... Díky moc :).
Název: Náhrada *.BAT v linuxu [vyřešeno]
Přispěvatel: Juraj 11 Června 2006, 15:47:37
man bash

subory s koncovkou .sh su spustitelne skripty shellu. Otvor si jeden a uvidis jeho strukturu....
Název: Náhrada *.BAT v linuxu [vyřešeno]
Přispěvatel: Libor Šedivý 11 Června 2006, 15:59:31
Ano, to jsem totiž udělal, ale připadalo mi, že příkazy, které zadávám normálně v konzoli (mv, mkdir, mplayer něco apod.), tam nevidím. Nepotřebuji rozvětvovat pomocí funkce if apod, to snad jindy, ale prostě jak to spustit atd...
Název: Náhrada *.BAT v linuxu [vyřešeno]
Přispěvatel: mallox 11 Června 2006, 16:41:10
viz dokumenty v mem prispevku http://forum.ubuntu.cz/viewtopic.php?id=1796 -> cely semestr jsme se jenom timto i zabyvali..nebo uplne jednoduse vysvetleno na http://www.root.cz/clanky/programovani-v-bash-shellu/
Název: Náhrada *.BAT v linuxu [vyřešeno]
Přispěvatel: Pitris 11 Června 2006, 20:08:12
Vytvorite si souboubor s prikazy a pojmenujete jej treba neco.sh
Pak si v prikazovemn radku musite nastavit prava pro spousteni tohoto scriptu
tedy:
Kód: [Vybrat]
chmod +x neco.sha soubor spustite
Kód: [Vybrat]
./neco.shz adresare, kde se nachazi.

a nebo

napisete
Kód: [Vybrat]
bash cesta_k_souborucoz funguje i bez predchoziho nastaveni chmod

a nebo

si vytvorite v domovkem adresari adresar bin, do nej soubor nakopirujete a pokud mate systemovou promennou (v souboru .bashrc) nastavenou na mimo jine na /home/muj_ucet/bin, muzete spouste primo
Kód: [Vybrat]
neco.sh(v tomto pripade zase chmod +x)

V kazdem pripade je dobre jako prvni radek ve skriptu mit

Kód: [Vybrat]
#!/bin/bashaby vedel, ktery shell pouzit.

A na zaver perlicka. Pokud experimentujete primo na prikazove radce, tak prikazem
Kód: [Vybrat]
cat .bash_historysi vylistujete posledni pouzite prikazy, ktere jste napsal a muzete si je snadno zkopirovat do sveho souboru skriptu.  At se dari! :)
Název: Náhrada *.BAT v linuxu [vyřešeno]
Přispěvatel: mallox 11 Června 2006, 20:32:54
Citace: Pitris
V kazdem pripade je dobre jako prvni radek ve skriptu mit

Kód: [Vybrat]
#!/bin/bashaby vedel, ktery shell pouzit.
vyslovne doporucuji..vyvarujete se pripadnym nejasnostem a komplikacim..
Název: Náhrada *.BAT v linuxu [vyřešeno]
Přispěvatel: byree 11 Června 2006, 21:42:01
Citace: liborse
Dobrý den,

...

Jde o to, že chci vytvořit "dávkový soubor", který by spustil příkaz pro konzoli - "mplayer mms://82.208.28.37/fajn32". Jen toto, jak trapně prosté. No a další věc, jak ten soubor potom spustím? "./script.sh" nebo jinak? Chtěl bych to potom umístit na plochu či někam do menu.
Skripty jsou skvělá a užitečná věc. Ale na takto jednoduchý příklad stačí vytvořit na ploše nebo v menu spouštěč a do něj napsat uvedený příkaz, ne?
Název: Náhrada *.BAT v linuxu [vyřešeno]
Přispěvatel: Jenda 11 Června 2006, 21:52:40
I tak lze řešit.
Název: Náhrada *.BAT v linuxu [vyřešeno]
Přispěvatel: Jan Nekvasil 11 Června 2006, 23:50:13
Citace: liborse
Jde o to, že chci vytvořit "dávkový soubor", který by spustil příkaz pro konzoli - "mplayer mms://82.208.28.37/fajn32". Jen toto, jak trapně prosté. No a další věc, jak ten soubor potom spustím? "./script.sh" nebo jinak? Chtěl bych to potom umístit na plochu či někam do menu.
Tak na takovouhle trivialitku ani skripty potřebovat nebudeš.
Pravým myšítkem na ploše --> Vytvořit spouštěč --> Vyplnit kolonky, do políčka "příkaz" napiš to svoje "mplayer mms://82.208.28.37/fajn32". Ještě tomu vyber nějakou obzvláště zdařilou ikonku a je vymalováno.
Jak prosté, milý Watsone. :)

PS: skripty coby vychytávka neexistují "i v linuxu" alébrž "zejména v linuxu" ;)
Název: Náhrada *.BAT v linuxu [vyřešeno]
Přispěvatel: Libor Šedivý 12 Června 2006, 22:42:16
S tím menu jsem na to přišel už dříve, to jsem si blbec uvědomil už po napsání 1. příspěvku. :) Nicméně mi šlo především o nahlédnutí "pod pokličku" a uvést mě do problematiky se vám výtečně podařilo. ;) Moc vám tímto děkuji. Budu studovat.

PS - já vím, že linux je na skripty jak dělaný, jen jsem si to chtěl ověřit ;) - teprve ho poznávám a tak - nyní se chci zaměřit na "vnitřek" systému, jak funguje a tak - nemůžu žít jen z klikání v KDE, GNOME, Xfce apod. ;)
Název: Náhrada *.BAT v linuxu [vyřešeno]
Přispěvatel: Onygzzz 16 Ledna 2007, 22:08:12
Čau chlapi...řeším problém s konfliktem komunikačního programu TeamSpeak a hry ET...po dlouhém googlení jsem našel ASI řešení. Mělo by spočívat v tomto scriptu:

#!/bin/bash

echo "et.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
echo "et.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss echo "et.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss
echo "et.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss

Jedná se podle toho co jsem pochopil o uvědomění sound systému, že aplikace et.x86 nepoužívá vstup, ale jen výstup. Nicméně...podle tohohle skvělého vlákna (mimochodem díky za něj, zase vím něco navíc:)) jsem si ve svém home adresáři vytvořil soubor etscript.sh a do něj jsem zkopíroval uvedený obsah. Uložil jsem, nastavil práva příkazem: " chmod +x etscript.sh" a po spuštění příkazem ./etscript.sh jsem dostal hásledující výpis:

onygzz@linux:~$ ./etscript.sh
./etscript.sh: line 3: /proc/asound/card0/pcm0p/oss: Permission denied
./etscript.sh: line 4: /proc/asound/card0/pcm0p/oss: Permission denied
./etscript.sh: line 5: /proc/asound/card0/pcm0p/oss: Permission denied
onygzz@linux:~$

Helpne mi s tím někdo? Už to řeším dva dny a přestávám věřit v ůspěch..:(

PS. Jen doufám, že to nebude vězet v onom "x" u nastavování práv...tuším totiž, jestli se náhodou x nemá doplnit nějakým konkrétním parametrem pro tu kterou potřebu a uživatele:)
Název: Náhrada *.BAT v linuxu [vyřešeno]
Přispěvatel: MarrLiss 16 Ledna 2007, 22:11:31
Imho se to musi spoustet jako root (nebo pres sudo).
Název: Náhrada *.BAT v linuxu [vyřešeno]
Přispěvatel: Onygzzz 16 Ledna 2007, 22:32:34
Citace: MarrLiss
Imho se to musi spoustet jako root (nebo pres sudo).
Safra to mě nenapadlo...myslel sem, že se to právě řeší tím udělení práv:)...v tom se nejvíc topím v tomdle:) Budu to muset naštudovat...ale zpátky k tématu...opravdu to přes sudo spapalo, ale bohužel kýžený efekt se nedostavil...pořád ET bez zvuku, když běží jakýkoliv jiný program používající zvuk (TS, Rhytmbox...) Ještě snad doplním, že jiné hry běží....OpenArena atd.....takže imho nebude problém v "železe", jak jsem se někde na netu dočetl (levné, nebo onboard sound karty, které mají jeden audio vstup a jeden audio výstup místo požadovaných jednoho audiovstupu kombinovaného s výstupem + audiovýstup). Nebyl by ochoten se na to nějaký odborník zběhlý v tomto pro mě zatím "tabu" OS kouknout?:) Byl bych moc vděčen za každou radu vedoucí k úspěchu:)

ps. řeší se to třeba tady:

http://www.abclinuxu.cz/forum/show/162797
http://www.truecombat.us/forums/viewtopic.php?p=15850&sid=2511250bfdfa870cf8d16c37207481e2

Edit: jen dle selského rozumu...neměl by ten script jako zapsat řádky: et.x86 0 0 direct ..a tak dále do toho souboru oss? Páč když zadám například "sudo gedit /proc/asound/card0/pcm0p/oss", tak je soubor pořád prázdný...stejně tak když se tam proklikám v nautilusu a stejně tak nautilusem s root právy....to sem z toho jelen...
Název: Náhrada *.BAT v linuxu [vyřešeno]
Přispěvatel: CHACAL 17 Ledna 2007, 20:37:52
http://docs.linux.cz/programming/interpreted/bashdoc-1.4/