Kirjoittaja Aihe: Ohjeita shell-skriptaukseen (bash)  (Luettu 329563 kertaa)

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #40 : 07.01.11 - klo:13.50 »
Taisi siis selvitä jo: kyseessä on se ohjelman lopetusnappi ylärivillä - se josta kiistellään pitäisikö se sijoittaa oikeaan vai vasempaan reunaan. Enemmän Ubuntua käyttäneet ymmärtäisivät ilmanmuuta paremmin jos sanoisi vain: sulje ohjelma.
Eiköhän ole ihan kohtuullista olettaa että scriptien kirjoittamisesta kiinnostunut, aloittelijakin, tietää mistä ikkunat suljetaan? ::) Rautalankaohjeeseen sopisi paremmin liittää kuva joka vaiheesta, kuin yrittää kuvailla mitä milloinkin näkyy.

petteriIII

  • Käyttäjä
  • Viestejä: 657
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #41 : 17.01.11 - klo:19.20 »
Linuxissa jokainen näppäimistö on ohjelmoitava. Esimerkiksi nappulat f2-f12-ins-del ja monet muutkin erikoiskoodin näppäimet voit ohjelmoida seuraavasti:
- f1 on ongelmallinen sillä pääte omii sen ohjeiden näyttämiseen - saattaa siis toimia tai sitten ei.

1. anna päättessä käsky: cat ja paina enter.
2. paina haluamaasi erikoisnappia ja katso mitä näytölle tulee. Esimerkiksi nappula f12 aiheuttaa näytölle koodin: ^[[24~
3. käännä mielessäsi: ^[ on \e
4. avaa toinen pääte ja anna käsky:
bind '"\e[24~":"kirjoita tähän minkä tekstin haluat kirjoittuvan"' . Lopuksi paina enter. Huomaa nuo kummalliset lainausmerkki-kokoelmat. Leikkaa-liimaa on helpointa.

- nyt painaessasi nappulaa f12 tulostuu tuo teksi
- tämä ei toimi boottauksen yli noinvain vaan tuo käsky täytyy kirjoittaa esimerkiksi tiedostoon .bashrc  - vaikkapa sen loppuun.
- voit ohjelmoida niin monta nappulaa kuin haluat.
- toimiipa sekin että esimerkiksi kirjoitettuasi viestin jollekulle joka on kanssasi samassa koneessa haluatkin ennen viestin lähettämistä varmistua siitä että hän on paikalla. Mikäli ~/bashrc:ssä on käsky: bind -x '"\eU":"users"' niin painettuasi alt-shift-u tulostuvat käyttäjät ja kirjoittamasi viesti perään.
« Viimeksi muokattu: 01.06.19 - klo:15.15 kirjoittanut petteriIII »

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #42 : 17.01.11 - klo:21.42 »
Pieni "a" se pitäisi olla ja vähän muutakin perässä mutta ei tuo ole pakollinen, täällä on jokin esimerkki:

http://tldp.org/LDP/abs/html/arrays.html

Tuo kirjain tulee sanasta "array", olisikohan tuo lähinnä yksiulotteinen taulukko tai numeroiden sarja suomeksi.  Tuo koodisi idea on itselleni hämärä monestakin kohdasta jos tarkoituksena on vain laskea kahden luvun tulo ja palauttaa sen arvo.
« Viimeksi muokattu: 17.01.11 - klo:22.03 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #43 : 18.01.11 - klo:19.23 »
#!/bin/bash
declare -A Kertotaulu # Miksi tämä ilmoitus vaaditaan ja miksi 'parametrin' pitää olla iso A ? Onko skripti muutenkaan OK ?            
for (( apu1=10; apu1>=1; apu1-- )); do
  for (( apu2=1; apu2<=10; apu2++ )); do
    Kertotaulu[$apu1,$apu2]=$(echo $apu1*$apu2 | bc )

Hyödynnät tuossa Bash 4:n assosiatiivista taulukkoa, joka syntyy juuri declare -A:lla. Asetat siis taulukkoon kertolaskun x*y tulon avainmerkkijonolla "x,y". Tämä toimii periaatteessa, mutta tehokkaampaa lienee simuloida kaksiulotteista taulukkoa yksiulotteisella. Siis kertotauluesimerkin tapauksessa:

Koodia: [Valitse]
#!/bin/bash

koko=100
declare -a kertotaulu

for (( i=1; i<=$koko; i++ )); do
    for (( j=1; j<=$koko; j++ )); do
        let "n = $i * $koko + $j"
        let "kertotaulu[$n] = $i * $j"
    done
done
let "n = 7 * koko + 8"
echo ${kertotaulu[$n]}

Kokeilin molempia 300x300 -taululla ja normaalia taulukkorakennetta käyttävä versio tarvitsi puolet vähemmän aikaa ja tilaa. Lisäksi sen aikavaativuus suhteessa taulukon kokoon on lineaarinen, kun assosiatiivisella taulukolla aikavaativuus näyttää olevan O(n^2). Se on kaukana optimaalisesta, ja isot assosiatiiviset taulukot ovatkin bashilla käyttökelvottoman hitaita.

Vertailun vuoksi miljoonan kokonaislukualkion (1000x1000) kertotaulun luonti bash-skriptillä kesti yli minuutin ja käännetyllä C-ohjelmalla 10 millisekuntia. Tai noin 1 ms ilman ohjelman käynnistymisestä aiheutuvaa viivettä.

petteriIII

  • Käyttäjä
  • Viestejä: 657
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #44 : 18.01.11 - klo:20.48 »
Nämä on esitetty koodina jotta tekstin muotoilu säilyisi
Koodia: [Valitse]
Linuxin haku on monipuolinen ja senvuoksi vaikea hallita. Sen käyttö helpottuu kun määrää ettei se tulkitse erikoismerkkejä. Hakea voi vaikka järjestelmätiedostoista
mutta etsintää kyllä helpottaa jos etsit omasta kotikansiostasi. Sen käyttö on seuraavanlaista kun etsitään jotakin tiedostoissa olevasta tekstistä:

grep -hrF etsittävä mistä_etsitään   Antaa tuloksenaan niiden tiedostojen nimien joukon joista etsitty löytyy. Esimerkiksi kun haetaan merkkiryhmää: [[ $1 ]] niin
                                     tämä etsintä määrätään yksinkertaisesti :  grep -hrF '[[ $1 ]]' /home/käyttäjänimi  . Rajoittamattomana hakuna sama on:  
                                     grep -hrE '\[\[\ \$1\ \]\]' /home/käyttäjänimi .
grep -lrF etsittävä mistä_etsitään   Antaa tuloksenaan niiden lauseiden joukon joista etsitty löytyy
------------------------------------------------------------------------------------------------------------------------------------------------------------------
Rajoittamatonta hakua on pakko käyttää kun tarvitaan joustavuutta; silloin hakusanoissa olevat erikoismerkkit tulkitaan kuten Linux ne tulkitsisi ellei niiden edessä ole merkkiä \ . Esimerkiksi $ on muuttujan edessä, * ja . tulkitaan jokerimerkeiksi jne. Kytkimestä poistetaan kytkin F, muuten toiminta on sama.
          
Hakusanan Määrittelyjä:
'viisi numeroa'    kun etsittävässä on välilyöntejä laitetaan se heittomerkkien väliin
'. tr .'           kun haluat painottaa että ennen etsittävää on välilyönti ja perässä myös; tässä etsitään käskyä tr
grep.*lr           kun etsittävän osia erottaa tuntematon määrä merkkejä ( .* paikalla ei täydy välttämättä olla mitään. Etsittävien tulee olla samalla rivillä)
^grep              kun halutaamn painottaa että etsittävä on rivin alussa
kolmio.$           kun halutaan painottaa että etsittävä on rivin lopussa  ( siis ^$ on tyhjä rivi )
[abc]-ajokortti    kun halutaan löytää kaikki paikat joissa puhutaan a-,b- tai c-ajokorteista, mutta e-ajokortit saa jäädä löytymättä
[a-e]-ajokortti    kun halutaan löytää ne kaikki
\$dollari          kun etsittävässä on erikois-merkityksen omaava merkki jolla kuitenkin on normaali aakkos-merkitys niin kun sen eteen kirjoitetaan \
'[0-9]\{5\}'       kun etsitään sanaa jossa on viisi numeroa (numerossa on merkit 0-9; siis etumerkistä ei välitetä)
[\ e]grep          kun halutaan löytää grep ja egrep, mutta muita grepejä ei
 
haettavien erikoismäärityksiä (merkkiluokkasyntaksi ?):
[:alnum:]->[A-Za-z0-9]. Yleensä nämä täytyy laittaa hakusanassa kaksinkertaisiin sulkuihin: grep [[:digit:]] test.file
[:alpha:]->[A-Za-z]     [:blank:]->välilyönti tai TAB    [:cntrl:]->jokin kontrollimerkki     [:digit:]->[0-9]     [:graph:]->ASCII 33 - 126.
[:lower:]->[a-z]    [:print:]->ASCII 32 - 126 ja lisäksi välilyönti    [:space:]->välilyönti ja 'pystysuora TAB'   [:upper:]->[A-Z]
[:xdigit:]->[0-9A-Fa-f].

pilkku menettää erikoismerkityksensä hakusanan viimeisenä merkkinä.
^ menettää erikoismerkityksensä ellei se ole ensimmäinen merkki
useimmat erikoismerkit menettävät erikoismerkityksensä merkkien [] välissä.

grepin kytkimet:
-r  etsitään rekursiivisesti                          -s  ei anneta varoitusviestejä                      -c  vain löytöjen lukumäärä tulostetaan
-h  tulostaa sen tekstirivin jolta etsitty löytyy     -w  oleta etsittävän alkuun ja loppuun \< ja \>     -v  poista hakutuloksista ne joissa etsitty on osana  
-l  tulostaa sen tiedoston nimen josta etsitty löytyy -n  tulostaa myös miltä riviltä etsitty löytyi      -i etsittäessä ei huomioida kirjainkokoa    
-F  etsitään kirjaimiltaan juuri sellaista mikä etsittäväksi määrättiin
-E  ota käyttöön laajennoksia, mm. \ ei tarvita; siis esimerkiksi kun etsit "placeholdereita" niin etsittävä on: grep -lrE {} mistä_etsittään
- jostain syystä kun etsii ilmaisua: -exec kirjoitetaan hakusana: \\-exec

jälkihuomautuksia:
- usein tuloksia tulee niin paljon että niistä olisi kiva poistaa turhia. Esimerkiksi ensimmäisen haun perään voi lisätä käskyn poistaa tuloksista binääri- ja piilotiedostot: | grep -vE '(binääri|.*)'
- haut ovat yleensä tosinopeita, mutta jotkut haut saattaa kestää pitkään kuten esimerkiksi haku:  grep -hr '[0-9]\{24\}' hakupaikka    
- kun etsit löytyykö joku ilmaisu skriptien nimistä niin käsky onkin: find mistä |  grep "mikä sana löydetyissä pitäisi olla"
                                                    siis esimerkiksi: find /home |  grep "haku"                
- en näitä hakuja oikein hallitse ja keskenkin tämä on - ilmanmuuta ohjeessa on paranneltavaa monessakin asiassa
« Viimeksi muokattu: 24.04.12 - klo:21.54 kirjoittanut petteriIII »

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #45 : 19.01.11 - klo:12.16 »
Opinpa minäkin uuden asian, tämän takia täällä foorumilla on hauskaa käydä ! 
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #46 : 25.01.11 - klo:09.15 »
Lainaus
Kohdat 1&2 on esitetty vastauksessa #36. Ilman niitä ei tämä skripti toimi.
Asian vierestä, jos haluat helpottaa lukijan vaivaa niin kannattaa laittaa linkki joka hyppää suoraan tuohon vastaukseen #36 jolloin lukija ei joudu pyörittelemään tekstiä tyyliin "missä ihmeessä tuo #36 nyt olikaan".  Viittauksista, tyhmempi lukija (=minä) ei välttämättä heti oivalla minne viittaa "kohdat 1&2" ja "niitä".  No, se on tietty lukijan ongelma mutta selkokielinen / helposti seurattava viesti menee paremmin perille.
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

petteriIII

  • Käyttäjä
  • Viestejä: 657
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #47 : 25.01.11 - klo:11.49 »
... jos haluat helpottaa lukijan vaivaa niin kannattaa laittaa linkki joka hyppää suoraan tuohon vastaukseen #36 jolloin lukija ei joudu pyörittelemään tekstiä tyyliin "missä ihmeessä tuo #36 nyt olikaan"....

Kiitos huomautuksesta, linkki on nyt tehty - ei kai se sääntöjen mukaan tullut tehtyä, mutta tuntuu toimivan.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #48 : 02.02.11 - klo:13.35 »
Silmäsin hieman tuota scriptiäsi, en ole varsinainen "skriptaaja" vaikka olenkin satunnaisesti tuota tehnyt.   Itse olen mieltynyt eräänlaiseen rakenteellisuuteen eli erottamaan näytölle tulostamisen ja funktiot toisistaan niin että funktiot tekevät jotain operaatioita ja palauttavat arvoja mutta pääohjelma tekee kutsujen jälkeisen käsittelyn ja näytölle tulostamisen.  Hyödyllistä tai ei, joku koodaaja voisi ehkä kommentoida paremmin.

Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

petteriIII

  • Käyttäjä
  • Viestejä: 657
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #49 : 03.02.11 - klo:16.42 »
Täytyy myöntää että ali-dokumentoituja ne ovat, ja raskaasti. Varsinkin jos ottaa huomioon missä mielessä koodi on esitetty. Täytyy tapella itseni kanssa, eiköhän dokumentointia tule lisää.
- Selvitys: olin kauan sitten ohjelmoija ja opin inhoamaan yli-dokumentointia koska sellaisen koodin hyödyntäminen käy surkean hitaaksi - myös netistä kopioidun.

BASH-ohjelmien dokumentointi on kyllä sikäli turhauttavaa että todellinen virtuoosi supistaa pitkänkin funktion muutamaan pääohjelmassa olevaan käskyyn. Enkä minä ole enää minkäänlainen virtuoosi.

Samoin ne näytölle-tulostukset ovat kyllä liiaksi painottuneet funktioihin.

ppiirto

  • Käyttäjä
  • Viestejä: 9
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #50 : 27.03.11 - klo:20.13 »
Tietääkö onko jotain tapaa tehostaa .sh-skriptien toimintaa tai jopa konvertoida tai kääntää niitä johonkin tehokkaampaan muotoon?

Olen käyttänyt animaatioiden tekoon paljon ImageMagick-kuvanmuokkausohjelmaa käyttäviä skriptejä ja nämä skriptit ovat aika tolkuttoman hitaita. En tiedä kyllä johtuuko hitaus lähinnä IM:n hitaudesta. Hitaudella tarkoitan nyt sellaista, että skriptin ajaminen kestää viikon, en mistään millisekuntieroista.

Tuossa esimerkkiskriptin pätkä, varmaan noita voisi muutenkin kyllä optimoida:

Koodia: [Valitse]
stutterJpgEND ()
{
len=${#images[*]}
l=0
        k=0
sourceImage=${images[$l]]}
prev=0
let stutterNum=0
while [ $l -lt $len ]; do
if [ $k -lt 10 ] ; then
num="0${k}"
else
num="${k}"
fi
if [ $k -lt 100 ] ; then
num="0${num}"
else
num="${num}"
fi
if [ $k -lt 1000 ] ; then
num="0${num}"
else
num="${num}"
fi
sourceImage=${images[$l]}

resultImage="videoframes/stutter/stutter_ani${num}.jpg"
tempImage="videoframes/stutter/stutter_temp${num}.jpg"

if [ ${stutterUseBase} -eq 1 ] ; then
resultImage="stutter/stutter_ani${num}.jpg"
tempImage="stutter/stutter_temp${num}.jpg"
fi

convert ${sourceImage} -contrast -contrast -resize 1620x1080 ${tempImage}

if [ ${stutterLoop} -eq 1 ] ; then
let stutterNum+=stutterStep
if [ ${stutterNum} -gt ${stutterSize} ] ; then
let stutterNum=0
fi
fi
let stutterLine=stutterSize+stutterNum

if [ ${stutterUseBase} -eq 1 ] ; then
resultImage="stutter/stutter_ani${num}.jpg"
tempImage="stutter/stutter_temp${num}.jpg"
fi

${scriptDirectory}stutter.sh -s ${stutterLine} -d ${stutterDir} ${tempImage} ${resultImage}
rm ${tempImage}

echo "stuttered ${num} of ${len}"

let k++
let l++
done

}

petteriIII

  • Käyttäjä
  • Viestejä: 657
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #51 : 27.03.11 - klo:21.56 »
Joskus 1995 joku Espanjalainen teki sille jonkunsortin C-kielelle kääntävän kääntäjän joka oli ainakin aikoinaan sangen suosittu; nimeäkään en muista enkä googlestakaan nyt löytänyt. Mutta joskus 2005 sen ylläpito loppui, en tiedä miksi. Kai sen vieläkin saisi käsiinsä.
- olen nyt vajaan vuoden opiskellut BASHia aikani kuluksi. Tuntuu että sillä on kykyjä vaikka mihin; mutta riippuen siitä kuinka skriptin kasaa sen suoritusajat, muistivaatimukset jne. vaihtelevat aivan kammottavasti.

ppiirto

  • Käyttäjä
  • Viestejä: 9
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #52 : 27.03.11 - klo:23.22 »
Kiitos vastauksesta. Olen itse käyttänyt muiden tekemiä skriptejä vuosia, mutta vasta vajaan vuoden itse näitä olen enemmän tehnyt. Näillä tosiaan voi tehdä nopeasti vaikka mitä, mutta juurikin tämmöisissä toistuvissa matemaattisissa operaatioissa yms ei taida olla kauhean tehokasta. En tiedä kyllä olisiko ero suuri jos tekisin vastaavan esim Javalla. C:tä tai C++:aa en itse osaakaan kunnolla.

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #53 : 28.03.11 - klo:15.58 »
Olen käyttänyt animaatioiden tekoon paljon ImageMagick-kuvanmuokkausohjelmaa käyttäviä skriptejä ja nämä skriptit ovat aika tolkuttoman hitaita. En tiedä kyllä johtuuko hitaus lähinnä IM:n hitaudesta. Hitaudella tarkoitan nyt sellaista, että skriptin ajaminen kestää viikon, en mistään millisekuntieroista.

Ainakin tuossa esimerkkiskriptissäsi ainoastaan convert ja stutter.sh saattavat olla hitaita, eli ongelma ei ole skriptissä itsessään.

Mikä tässä on lopullisena päämääränä? Esimerkiksi ffmpegillä voi tehdä monia kuvankäsittelyoperaatioita suoraan komentoriviltäkin, ja FFmpegin jpeg-kodekki ja skaalaimet ovat ainakin kertaluokkaa nopeampia kuin ImageMagickin.

Näillä tosiaan voi tehdä nopeasti vaikka mitä, mutta juurikin tämmöisissä toistuvissa matemaattisissa operaatioissa yms ei taida olla kauhean tehokasta. En tiedä kyllä olisiko ero suuri jos tekisin vastaavan esim Javalla. C:tä tai C++:aa en itse osaakaan kunnolla.

Ensin kannattaa selvittää, mikä skriptistä tekee hitaan. time-komento (tai vaihtoehtoisesti /usr/bin/time, jossa on enemmän toimintoja kuin bashin timessa) auttaa suoritusaikojen mittaamisessa.

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #54 : 28.03.11 - klo:22.54 »
Kannattaa myös miettiä tarkkaan miten ImageMagick komentoja käyttää. Esim.
Koodia: [Valitse]
convert ${sourceImage} -resize 1620x1080 -contrast -contrast ${tempImage}lienee nopeampi kuin
Koodia: [Valitse]
convert ${sourceImage} -contrast -contrast -resize 1620x1080 ${tempImage}...ellei tuossa sitten skaalata kuvaa isommaksi.

Eihän nuo nyt tietenkään tee täsmälleen samaa lopputulosta, mutta käytännössä ero ei välttämättä ole huomattava.

Antifilatelisti

  • Käyttäjä
  • Viestejä: 258
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #55 : 03.05.11 - klo:02.07 »
Laitanpas tänne bashaamiani sekasikiöitä:

Koodia: [Valitse]
#!/bin/bash
# Vaihdetaan kansion sisältämät tiedostonimet vastaamaan tekstitiedoston uudet.nimet listaa:
#
echo"
#Esim:
#---------------------------------------------
# ls Kansio/    t1 t2 t3 t4 t5            |
#                                         |
# cat uudet.nimet                         |
# n1                                      |
# n2                                      |
# n3                                      |
# n4                                      |
# n5                                      |
#                                         |
# Skriptin nimenmuunto.sh suoritus        |
# -> ls Kansio/    n1 n2 n3 n4 n5         |
#---------------------------------------------"

echo "Kerätään tietoja"

ls *.[^nimet]* >vanhat.nimet
riveja=`wc -l uudet.nimet|awk '{print $1}'`;

cat vanhat.nimet



echo -n "Muunnetaanko $riveja:n tiedoston nimet enter(joo): "
read syotto




if [ -z "$syotto" ];
  then
                echo "========================="
     for luku in $(seq $riveja)

  do

apused=''$luku"q;d"''

  v=`sed  ''$apused'' vanhat.nimet`
  u=`sed  ''$apused'' uudet.nimet`

echo "Vanha: $v"
echo "Uusi: $u"

  mv "$v" "$u"

done
  echo "========================="

 else
echo "Mitään ei muunnettu...poistutaan";
 fi


exit


Ja sitten tää mun winepelejen käynnistäjä:

Koodia: [Valitse]
#!/bin/bash
echo "------------------------------------"
echo  "Mitä pelataan"
echo;
echo "-enter :poistu"
echo "-1 :Il2"
echo "-2 :civ4"

echo -n "Valitse peli:"
read  valittu


   case $valittu in
#1
1) echo "Vaihtoehto 1 valittu"
wine "/home/kayttaja/pelit/il2410m/il2fb.exe"
exit;;
      
#2
2) echo "Vaihtoehto 2 valittu"

echo  "Mitä pelataan"
echo;
echo "-enter :poistu"
echo "-1 :civ4"
echo "-2 :wlords"
echo "-3 :beyond"
echo -n "Valitse peli:"
read  versio;

  case $versio in
#1
1) echo "Vaihtoehto 1 valittu"
WINEDLLOVERRIDES="msxml3=n" wine "/home/kayttaja/pelit/civ/Civilization4.exe"
exit;;

#2
2) echo "Vaihtoehto 2 valittu"
WINEDLLOVERRIDES="msxml3=n" wine "/home/kayttaja/pelit/civ/Warlords/wlords.exe"
exit;;

#3
3) echo "Vaihtoehto 3 valittu"
WINEDLLOVERRIDES="msxml3=n" wine "/home/kayttaja/pelit/civ/Beyond the Sword/Civ4BeyondSword.exe"

exit;;
esac

exit;;
esac
exit



Tästä voimme päätellä jotta bashata voi paksusti ja rusinoita(;) saa mättää mielin määrin minne vaan, mutta silti toimii. ugh :)
« Viimeksi muokattu: 03.05.11 - klo:02.14 kirjoittanut Antifilatelisti »

Antifilatelisti

  • Käyttäjä
  • Viestejä: 258
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #56 : 05.05.11 - klo:02.38 »
Verkossa on varmaankin jossain kerrottu kuinka Nattylle tehdään sivupalkkiin käynnistin omille skripteille mutta en kylläkään ole nähnyt. Mutta tässä se nyt on:

Nattyn sivupalkkiin voi tehdä itsetekemilleen skripteille käynnistimen: heti boottauksen jälkeen napauta hiiren vasemmalla työpöytää jostainkohtaa ja avautuvasta ikkunasta: luo käynnistin. Avautuvassa ikkunassa kirjoita skriptin nimi kohtaan Nimi:. Senjälkeen paina Selaa ja etsi skrpti ja näpäytä sitä hiiren oikealla . Sitten siirrä hiiriosoitin sanan Komento: viereisen ikkunan alukuun ja näpäytä hiiren vasemmalla. Kirjoita siihen: gnome-terminal -e ja kirjoittamasi perään välilyönti ennen sanaa /home..... Kun näpäytät valmis niin työpöydälle ilmestyy kuvake: tässävälissä kannattaa muuten kokeilla että kuvake toimii. Sammuta skriptiajuri.
Töypöydällä siirrä hiiriosoitin tehdyn kuvakkeen päälle ja paina hiiren vasen pohjaan ja pidä se pohjaanpainettuna. Kuvake on nyt hiiriosoittimenasi - siirrä se vasemmalla olevan palkin päälle (tässävaiheessa älä välitä millainen kuvake sillä on mutta pistä mieleesi millainen se on) ja päästä hiiren nappi ylös jolloin kuvake jää palkkiin. Paina näppäimistössä "Windows"-nappia ja katso mikä numero tekemäsi kuvakkeen päälle tulee. Kun painat yhtaikaa nappeja: windows-nappi ja tuo numero niin skriptiajuri käynnistyy.
- muuten työpöydällä olevan kuvakkeen heittäminen roskikseen vie kuvakkeen pois sivupalkistakin.
- muuten tuo loppu (Työpoydällä ...)  kertoo kuinka Ubuntun omat sovellukset saa sivupalkkiin.
- Nattyn sivupalkki häiriköi pahasti: heti kun viet hiiriosoittimen vasempaan laitaan niin sivupalkki todennäköisesti ponnahtaa esiin ja taas puhutaan perunoista. Ilmiötä lieventää aikapaljon asetus: ALT-f2 - kirjoita: gconf-editor - apps / compiz-1 / plugins / unityshell / screen0 /options / Launcher_reserved_edge - muuta arvo Left:istä Right:iksi. Palkki tulee edelleen esiin kun hiiriosoitin menee vasempaan laitaan ruudun 'ylärivillä' mutta ei enää kun ollaan näytössä 'ylärivin' alapuolella.


LOL :) oiskohan tässäkohden helpompaa käynnistää ubuntu kirjautumisruudusta perusubuntu desktoppiin ja raahata kuvake yläpaneliin ja käynnistää uudelleen nattynyn :)

Ja kun natyn paneelissa on niin rajallinen tila niin ehkäpä voisi kirjoittaa pienen skriptin:
Koodia: [Valitse]
#!/bin/bash
# Käynnistin omille skripteille, jotka ovat sijoitettuna yhteenkansioon
(sijoita tämä skripti samaan kansioon)
#


echo "------------------------------------"
ls|cat -b
echo -n  "Valitse suoritettavan skriptin numero: "

read skriptiNo



apused=''$skriptiNo"q;d"''

vs=`ls|cat -b|sed  ''$apused''|colrm 1 8`
sh $vs
exit;

petteriIII

  • Käyttäjä
  • Viestejä: 657
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #57 : 05.05.11 - klo:23.01 »
  oiskohan tässäkohden helpompaa käynnistää ubuntu kirjautumisruudusta perusubuntu desktoppiin ja raahata kuvake yläpaneliin ja käynnistää uudelleen nattynyn :)

Ei onnistu, kun itsetehdyillä skripteillä ei ole kuvakkeita? Tunnustan: on sekundaa tehdä pelkkä käynnistin. Mutta kuvakkeen teossa on todella iso homma.




retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #58 : 06.05.11 - klo:00.21 »
 ??? Käynnistin alias kuvake alias .desktop -tiedosto?

Antifilatelisti

  • Käyttäjä
  • Viestejä: 258
    • Profiili
Vs: Ohjeita shell-skriptaukseen (bash)
« Vastaus #59 : 06.05.11 - klo:00.23 »
 oiskohan tässäkohden helpompaa käynnistää ubuntu kirjautumisruudusta perusubuntu desktoppiin ja raahata kuvake yläpaneliin ja käynnistää uudelleen nattynyn :)

Ei onnistu, kun itsetehdyillä skripteillä ei ole kuvakkeita? Tunnustan: on sekundaa tehdä pelkkä käynnistin. Mutta kuvakkeen teossa on todella iso homma.

Niin tarkoitin kyllä, että lisää siellä perusdesktopissa myös sen kuvakkeen(hoikea ja selaa omakuvake). Itellä ainaski näin on omien skriptien kuvakkeet näkyneet nätisti myös natynpaneelissa. Myönnetäköön, että käynnisteleminen edes takaisin destoppien välillä voi olla rassaavaa :)