Kun Debianin Gnome-työpöydällä kaynnistää ohjelmaa, klikataan kuvaketta, mutta sen jälkeen tulee näyttöön valikko, mikä kysyy:
mitä tehdä valitulle tiedostolle:
haluatko ajaa tiedoston?
haluatko tarkastella tiedosta textieditorissa?
sitten kun klikkaan valintaa "haluatko ajaa tidoston" se ei aukea.
Avattava tiodosto on shell-skriptilla kirjoitettu Mozilla Firefoxin käynnistysskripti.
Minkä ihmeen takia joku on olettanut, että skriptejä halutaan aina muokata editorin ruudulla? Kyllä skriptit on tähäasti olleet ajettavaksi tarkoitettu. Jos niitä haluaa ihailla editorlla, saa sitä varten erikseen aukaista editorin.
Miten sais ohitettua ton kyselyn?
Nykyään joudun ajamaan kyseisen käynnistysskriptin komentotulkista käsin.
mitä tehdä valitulle tiedostolle:
haluatko ajaa tiedoston?
haluatko tarkastella tiedosta textieditorissa?
sitten kun klikkaan valintaa "haluatko ajaa tidoston" se ei aukea.
Avattava tiodosto on shell-skriptilla kirjoitettu Mozilla Firefoxin käynnistysskripti.
Minkä ihmeen takia joku on olettanut, että skriptejä halutaan aina muokata editorin ruudulla? Kyllä skriptit on tähäasti olleet ajettavaksi tarkoitettu. Jos niitä haluaa ihailla editorlla, saa sitä varten erikseen aukaista editorin.
Miten sais ohitettua ton kyselyn?
Nykyään joudun ajamaan kyseisen käynnistysskriptin komentotulkista käsin.
Vastaukset 3
Vanhimmat
Kyllä mulla vaan toimii ihan oikein.
Ilmeisesti sulla on skriptissä suoritusoikeus päällä koska se sentään kysyy mitä tehdään. jos soikeudet ei olisi päällä, niin skripti avautuisi suoraan tekstieditoriin.
Ainakin Debian Sargessa on mahdollista ajaa skripti sekä siten, että se avataan uudessa shelli-ikkunassa, että suoraan nykyisen session alaisuudessa. Esimerkkinä, mä tein tämmösen testi-skriptin ja tellensin sen työpöydälle:
#!/bin/sh
gedit &
Kun klikkaan skriptiä, niin mulla tulee tämmöinen kyselyikkuna:
http://www.saunalahti.fi/~miksuh2/screenshots/Script.png
Jos klikkaan 'Run' -nappia niin skripti ajetaan suoraan nykyisessä sessiossa. Skripti toimii ja gedit-aukeaa ihan kuten pitääkin.
Jos klikkaan "Run in terminal" -nappia, niin sillon avautuu uusi terminaali-ikkuna ja skripti suoritetaan, mutta terminaali-ikkuna sulkeutuu samantien eikä gedit avaudu. Miksi näin on?
No siksi, koska skriptissä on tuop &-merkki. Se tarkottaa sitä, että gediot ajetaan taustaprosessina. Samalla prosessi tuleee detachatuksi terminaali-ikkunasta ja terminaali-ikkuna sulkeutuu. Terminaali-ikkunan sulkeutumisesta seuraa kuitenkin se, että gedit-prosessi tapetaan ennenkuin sen ikkuna edes ehtii aueta. Kun terminaali-ikkunan sessio loppuu, sillon lopetetaan sessiossa käynnistetyt ohjelmatkin.
Eli ratkasuna on klikata tota 'Run' -nappulaa 'Run in terminal' -napin sijasta. Jos väkisin haluaa ajaa sen skriptin uudessa terminaali-ikkunassa, niin sillon skripti pitää muuttaa muotoon:
#!/bin/sh
gedit
Nyt gedit:a ei ajeta taustaprosessina, eikä sitä siis detachata shellistä joten shelli-ikkuna ei vapaudu eikä sulkeudu ennenkuin gedit-suljetaan.
"Minkä ihmeen takia joku on olettanut, että skriptejä halutaan aina muokata editorin ruudulla?"
Minusta on käyttäjäystävällistä, että siihen tarjotaan mahdollisuus. Itse en tykkäisi jos se ei kysyisi tota.
Se miten sä pääset eroon siitä kyselystä on näin:
Älä tallenna sitä skriptiä työpöydälle, siihen ei ole mitään syytä. Anna sen olla kotihakemistossa tai siellä mihin ohjelma on asennettu.
Tee työpöydälle käynnistin (launcher). Sen voi tehdä näin:
1) klikkaa työpöytää hiiren oikealla napilla.
2) Valitse avautuvasta pop-up valikosta 'Luo käynnistin' (Create launcher)
3) Täytä käynnistintä koskevat tiedot. riittää että annat käynnistimelle nimen ja syötä polun skriptin 'komento'-kenttään (esim: /home/miksuh/test.sh)
4) halutessasi voit antaa käynnistimelle sitä kuvaavan kommentin ja valita ikonin.
5) Klikkaa ok-nappia joka sulkee ikkunan ja luo käynnistimen.
Nyt voit sitten käynnistää ohjelman klikkaamalla käynnistimen ikonia.
tosta ensimmäisestä en tajunnut mitään, mutta käynnistimen sain luotua työpöydälle. Nyt se aukee ilman verenpainetta nostattavia kyselyikkunoita.
Kiitti vihjeestä.