openSUSE > Palvelinohjelmat ja ohjelmointi

Scriptin kirjoitus

(1/4) > >>

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