openSUSE > Palvelinohjelmat ja ohjelmointi
Scriptin kirjoitus
RaijaR:
Ihmettelen, että kuinka tyhmä ihminen voi ollakaan...
Olen siis tehnyt loistavan scriptin. Ja se kysyy salasanan rootille, ja tekee chmod -komennon, mutta se jää sitten möllimään paikalleen eli ei pääse "ulos" :-[ Ei edes cnrl_c:llä >:(
Scripit näyttää tältä:
#! /bin/bash
sudo chmod 777 /share/*
exit
Mitenkän tuosta saisi toimivan? Olisi vielä plussaa, jos sen saisi käynnistymään klikkaamalla.
RaijaR:
Poistin yhden välilyönnin :D Nyt näyttää toimiman. Eikun tekemään hienosäätöä...
#! /bin/bash <--- tästä
sudo chmod 777 /share/*
exit
ps. sitä en ole koskaan ymmärtänyt, että onko #!/bin/bash oikea komento vai onko se vain kommentti (ilmeisesti ei ole kommentti)
SuperOscar:
--- Lainaus käyttäjältä: RaijaR - 14.12.2020 - klo:19:02 ---
--- Koodia: ---#! /bin/bash
sudo chmod 777 /share/*
exit
--- Koodi päättyy ---
--- Lainaus päättyy ---
Tuossa exit on turha, koska skriptin päättyessä poistutaan joka tapauksessa.
--- Lainaus ---ps. sitä en ole koskaan ymmärtänyt, että onko #!/bin/bash oikea komento vai onko se vain kommentti (ilmeisesti ei ole kommentti)
--- Lainaus päättyy ---
Sekä että. Muistaakseni käyttöjärjestelmä – siis se eikä esim. komentotulkki itse – lukee tiedoston alusta kaksi tavua (”#!”), toteaa että skripti on tulossa, lukee halutun komentotulkin (”/bin/bash”) ja ohjaa syötteen sille. Komentotulkki taas saa käsiteltäväkseen koko tiedoston, joten sen kannalta kommenttimerkki on tarpeen, jottei riviä lähdetä enää suorittamaan.
RaijaR:
Kiitos SuperOscar selvityksestä :)
Minähän sain (jo aiemmin) kuningasajatuksen: teenpä "one-click" systeemin, joka ajaa tuon scriptin eli "linkki sovellukseen"
En osaa tätäkään. Aukaisee kyllä konsolin, mutta siihen se sitten jääkin. Ei edes ilmoita, että sudo chmod 777 /share/* -komento on väärä.
Netistä hain vaikka minkälaista esimerkkiä, mutta aina tökkää siihen, ettei tee mitään muuta kuin avaa konsoli-istunnon.
Linkki sovellukseen:
[Desktop Entry]
Comment[fi_FI]=kommentti
Comment=kommentti
Exec=/home/raija/bin/chaper.sh
GenericName[fi_FI]=Nimi
GenericName=Nimi
Icon=system-run
MimeType=application/x-shellscript;
Name[fi_FI]=Chaper
Name=Chaper
Path=/home/raija/bin
StartupNotify=true
Terminal=true
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=raija
Logit:
2020-12-15T16:34:26.993542+02:00 localhost systemd[1986]: Started Konsole - Pääteikkuna.
2020-12-15T16:34:27.050461+02:00 localhost konsole[1094]: kf.i18n: "Interpolation {$[gen %1]} in {$[gen %1] &asetukset...} failed: Non-string return value: undefined"
2020-12-15T16:34:27.050742+02:00 localhost konsole[1094]: kf.i18n: "Interpolation {$[gen %1]} in {$[gen %1] käyttö&ohj...} failed: Non-string return value: undefined"
2020-12-15T16:34:27.050838+02:00 localhost konsole[1094]: kf.i18n: "Interpolation {$[elat %1]} in {&Tietoa $[yleisnimi_...} failed: Non-string return value: undefined"
SuperOscar:
Kokeiles niin, että Exec-rivillä ohjelmana on komentotulkki ja sillä parametrina skripti. Toisin sanoen:
--- Koodia: ---Exec=/bin/bash /home/raija/bin/chaper.sh
--- Koodi päättyy ---
Muoks: Jaa, kokeilin myös Exec-rivin osoittaessa suoraan skriptiin, ja kyllä se minulla toimi. Tosin tulosta en ehtinyt nähdä kun pääte sulkeutui mutta en usko siinä olleen mitään ihmeellistä.
Skripti oli tällainen:
--- Koodia: ---#!/bin/bash
sudo ls -l /etc/ssh
--- Koodi päättyy ---
(missä /etc/ssh on kansio, jonka sisältöä tavallinen käyttäjä ei näe), ja desktop-tiedosto sitten tällainen (yritin karsia pois kaiken turhan):
--- Koodia: ---[Desktop Entry]
Name=Chaper
Exec=/home/tn/Tilap/test.sh
Path=/home/tn/Tilap
MimeType=application/x-shellscript;
Terminal=true
Type=Application
--- Koodi päättyy ---
Navigaatio
[0] Viestien etusivu
[#] Seuraava sivu
Siirry pois tekstitilasta