: 06 kwietnia 2013, 23:11
Witam.
Proszę o małą radę z rozgryzieniem pewnego tematu.
Mam plik tekstowy, który zawiera tekst:
Chcę "powyciągać" znaki, które znajdują się pomiędzy % i robię to tak:
Program zwraca mi tylko jedną wartość np.: S1 a pozostałe pomija.
Co robię źle?
Dodane:
Witam.
Chciałem się z Wami podzielić pewnym skryptem jaki napisałem do wyłączania komputera po określonym czasie bezczynności.
Chętnie przeczytam opinię o nim i może komuś się przyda.
Opis:
Zadaniem skryptu jest wyłączenie komputera po określonym czasie bezczynności, o ile w tle nie działają żadne programy które wykluczają wyłączenie.
W skrócie często mi się zdarza pracować do późna i zasypiałem przed komputerem. Chciałem aby komputer sam się wyłączył po określonej bezczynności, nie chciałem jednak by wyłączał się zawsze.
Zależało mi bowiem aby niektóre programy uniemożliwiły wyłączenie tak aby po ich włączeniu komputer mógł iść cały czas.
Zatem napisałem poniższy skrypt. Fakt jest on bardzo prosty ale działa i w sumie to mój pierwszy skrypt który robi coś konkretnego. Jeśli macie pomysł na jego usprawnienie chętnie przeczytam.
Na wstępie definiujemy czas bezczynności oraz programy (mnie trzy wystarczyły), które mają uniemożliwić wyłączenie.
Po pewnym czasie skrypt komunikuje za pomocą komendy beep, że nastąpi wyłączenie komputera tak aby móc jeszcze ruszyć myszką i go odroczyć.
Czas bezczynności określa na podstawie programu "xprintidle".
Czekam na opinie.
Proszę o małą radę z rozgryzieniem pewnego tematu.
Mam plik tekstowy, który zawiera tekst:
Kod: Zaznacz cały
/input,BCs/%S1%_%S2%_%S3%s_temp,mac
/input,BCs/%S1%_%S2%_%S3%s_press,mac
Chcę "powyciągać" znaki, które znajdują się pomiędzy % i robię to tak:
Kod: Zaznacz cały
awk -F "%" '{print $2}' | sort -u `
Co robię źle?
Dodane:
Witam.
Chciałem się z Wami podzielić pewnym skryptem jaki napisałem do wyłączania komputera po określonym czasie bezczynności.
Chętnie przeczytam opinię o nim i może komuś się przyda.
Opis:
Zadaniem skryptu jest wyłączenie komputera po określonym czasie bezczynności, o ile w tle nie działają żadne programy które wykluczają wyłączenie.
W skrócie często mi się zdarza pracować do późna i zasypiałem przed komputerem. Chciałem aby komputer sam się wyłączył po określonej bezczynności, nie chciałem jednak by wyłączał się zawsze.
Zależało mi bowiem aby niektóre programy uniemożliwiły wyłączenie tak aby po ich włączeniu komputer mógł iść cały czas.
Zatem napisałem poniższy skrypt. Fakt jest on bardzo prosty ale działa i w sumie to mój pierwszy skrypt który robi coś konkretnego. Jeśli macie pomysł na jego usprawnienie chętnie przeczytam.
Na wstępie definiujemy czas bezczynności oraz programy (mnie trzy wystarczyły), które mają uniemożliwić wyłączenie.
Po pewnym czasie skrypt komunikuje za pomocą komendy beep, że nastąpi wyłączenie komputera tak aby móc jeszcze ruszyć myszką i go odroczyć.
Czas bezczynności określa na podstawie programu "xprintidle".
Kod: Zaznacz cały
#!/bin/bash
log_path=/tmp/idletime.log #sciezka do zapisu logu
il_min=40 #podaj czas w minutach do wylaczania komputera
il_ms=60000 # zapis 1 min w milisekundach
il_all=$[ il_min*il_ms ] # zamiana minut na milisekundy
il_all_add=$[ 2*il_ms ] # czas wymagany do dogrywki
prog_1="vlc" #podaj nazwe programu do wykluczenia
prog_2="" #podaj nazwe programu do wykluczenia
prog_3="" #podaj nazwe programu do wykluczenia
prog_1_status=`/bin/ps aux | egrep "$prog_1" | egrep "(Sl)"`
prog_2_status=`/bin/ps aux | egrep "$prog_2" | egrep "(Sl)"`
prog_3_status=`/bin/ps aux | egrep "$prog_3" | egrep "(Sl)"`
if [ "$prog_1_status" ];
then
echo "uruchomiono program" $prog_1 $prog_1_status >> $log_path
prog_status=1
fi
if [ "$prog_2_status" ];
then
echo "uruchomiono program" $prog_2 $prog_2_status >> $log_path
prog_status=1
fi
if [ "$prog_3_status" ];
then
echo "uruchomiono program" $prog_3 $prog_3_status >> $log_path
prog_status=1
fi
idletime=`/usr/bin/xprintidle`
/bin/date +%T >> $log_path
echo "ilosc milisekund :" $idletime >> $log_path
if [ "$idletime" -ge "$il_all" ] ;
then
if [ "$prog_status" -eq 1 ];
then
echo "programy wykluczajace sa uruchomione" >> $log_path
else
echo "idletime wymagany do wylacznia komputera ostrzezenie o wylaczeniu" >> $log_path
beep
beep
sleep 1m
idletime_new=`/usr/bin/xprintidle`
if [ "$idletime_new" -ge "$il_all_add" ] ;
then
echo "uwaga wylaczenia komputera" >> $log_path
sudo shutdown -h now
fi
fi
else
echo "idletime za maly do wylaczenia komputera" >> $log_path
fi