Komandos "shutdown -h +xx" paleidimas per "#!/bin/bash"

S
starka
don Pedrilio
  • 16 Lie '12

Nesu programuotojas,todėl nesigauna truputi
Yra komanda, kurią suvedus terminale pasileidžia ir išsijungia PC po tam nustatyto laiko.
sudo shutdown -h +xx
Kaip pasidaryti per scriptą (per bash komandą), kad du kart paspaudus, pasileistų programa, ir pradžioje paprašytų įvesti laiką po kiek nori išjungti PC. Nes dabar reikia kiekvieną kart viduje failo pakaitalioti.
OS: "debian testing" ir "gnome2 aka Mate".

A
  • 16 Lie '12
#!/bin/bash
read eilute
komanda, statiniai parametrai ir  $eilute

Jei teisingai supratau.

G
  • 17 Lie '12

Veikiantis variantas:

#!/bin/bash

echo 'Nurodyk laika minutemis.' 
echo -n 'Arba ivesk "n", kad nutrauktum komandos vykdyma: '; read ATS
if [ $ATS = 'n' ]; then exit 0 
else sudo shutdown -h +$ATS
fi
G
  • 18 Lie '12

@starka rašė:
Nesu programuotojas,todėl nesigauna truputi
Yra komanda, kurią suvedus terminale pasileidžia ir išsijungia PC po tam nustatyto laiko.
sudo shutdown -h +xx
Kaip pasidaryti per scriptą (per bash komandą), kad du kart paspaudus, pasileistų programa, ir pradžioje paprašytų įvesti laiką po kiek nori išjungti PC. Nes dabar reikia kiekvieną kart viduje failo pakaitalioti.
OS: "debian testing" ir "gnome2 aka Mate".

bash scenarijus gali turėt ir GUI:

#!/bin/bash
ATS=$(zenity --entry --text "Kada išjungt?"); 
PASS=$(zenity --entry --hide-text --text "Įvesk sudo pass"); 
echo $PASS | sudo -S shutdown -h +$ATS
S
Shookees
Paulius
  • 22 Lie '12

gymkos variantas tikrai neblogas, tiesiog gal vietoj slaptažodžio vedimo lango užtektų vietoj sudo naudoti gksudo?

G
  • 23 Lie '12

@Shookees rašė:
gymkos variantas tikrai neblogas, tiesiog gal vietoj slaptažodžio vedimo lango užtektų vietoj sudo naudoti gksudo?

slaptažodžio vedimas=universalu
gksudo=tik gnome
net ir pats ubuntu turi lxde, xfce, gnome ir kde aplinkas, jau nekalbant apie kitas distras...

S
starka
don Pedrilio
  • 24 Lie '12

Ačiū Gymkai Kažką pats buvau panašiai jau pribūręs, bet čia tvarkingesnis kodas ir aiškiau

S
starka
don Pedrilio
  • 4 Rugs '12

Su ta sąlyga, kad mano temą apie bash užrakino, o dar iškilo klausimų..
yra:

time=$(date +%H:%M:%S)
shutdown=$(zenity --entry --text "Po kiek minučių išjungti PC?")
zenity --info --text "Po $shutdown minučių PC išsijungs"

o kaip padaryti, kad dar IR PARAŠYTŲ LAIKĄ? Pvz: 19.10 įjungiu skriptą ir užduodu 40min. Tai kaip programiškai padaryti, kad rodytų info taip:

PC išsijungs 19.50

Pas mane dabar parodo, kas PC išsijungs "Po 40min".

Ačiū

A
  • 4 Rugs '12

Čia tai paprasta.

date --date "now + $shutdown minutes" +%H:%M:%S

edit:.

zenity --info --text "Po $(date --date "now + $shutdown minutes" +%H:%M:%S) minučių PC išsijungs"
S
starka
don Pedrilio
  • 23 Grd '13

dar klausimas iš programavimo temos

!/bin/bash

pass=$(zenity --entry --hide-text --text "Įveskite 'sudo' password'ą")
ir t.t.

jei įvedamas passwordas teisingas, tai problemų kaip ir nėra- toliau vykdoma pagal scenarijų.
Bet jeigu passwordas blogas? Man vistiek išmeta visas lenteles ir klausimus, tik kad poto scenarijus nepaleidžiamas.

Kaip patikrinti passwordą, kad jis tikrai blogas ar geras ir kaip tai aparašyti:
-jei passw geras scenarijus vykdomas kaip ir buvo numatyta
-jei passw blogas- išmestų lentelę, kad blogas passw ir pasibaigtų scripto vykdimas

?

A
  • 27 Grd '13

@starka rašė:
jei įvedamas passwordas teisingas, tai problemų kaip ir nėra- toliau vykdoma pagal scenarijų.
Bet jeigu passwordas blogas? Man vistiek išmeta visas lenteles ir klausimus, tik kad poto scenarijus nepaleidžiamas.

Arba toks python variantas.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import commands
commands.getoutput("sudo -k")
commands.getoutput("sudo shutdown -c")
root = commands.getoutput("sudo whoami")

if root != 'root':
    print "Tu ne adminas!"
else:
    laikas     = raw_input("Išjungimo laikas: (pvz. 16:05): ")
    os.popen("sudo shutdown -h "+laikas)