Ad Menu

Bash (1)

Bash (1):
Questo che segue sono alcuni script per ottenere alcune informazioni dalla rete utilizzando il terminale,o per eseguire una serie di comandi collegati.
Il programma di navigazione utlizzato è "w3m",che già installato nel sistema,se si desidera si può sostituire con "lynx",o "elinks" ecc.

Meteo dal terminale
Per ottenere le informazioni meteo per la vostra regione,aprire un editor di testo ed incollare il seguente:

#!/bin/bash
w3m http://www.tempoitalia.it/meteo/abruzzo.html

Sostiutuite il nome della regione con quella vostra.
Salvate il file con il nome "meteo.sh".
Bisogna rendere il file eseguibile dalla scheda propietà o usare il comando:

chmod +x ./meteo.sh

per avviare digitare:

./meteo.sh

Durante la visualizzazione e possibile utilizzare il TAB e le freccie per ottenere le previsioni di altri giorni della settimana.

Dizionario:
E' possibile inserire direttamente il parametro di ricerca oppure farlo successivamente.

Dizionario
Incollare il seguente in un file di testo:

#!/bin/bash
w3m http://www.wordreference.com/it/translation.asp?enit=$1

Salvare il file con il nome "dizionario.sh" e rendere il file eseguibile con:

chmod +x ./dizionario.sh

per avviare digitare:

./dizionario.sh automobile

Enciclopedia:
Questo script mi funziona solo con lynx,e non con w3m.

Enciclopedia
Per installare lynx:

sudo apt-get install lynx

Incollare il seguente in un file di testo:

#! /bin/bash
lynx -dump "http://www.google.com/search?hl=it&q=define%3A+${1}&btnG=Google+Search"| grep -m 15 -w "*"

Salvare il file con il nome "enciclopedia.sh" e rendere il file eseguibile con:

chmod +x ./enciclopedia.sh

per consultare con un esempio digitare (funziona solo con parametro):

./enciclopedia.sh linux

Loggato:
Questo semplice script mostra le persone loggate nel sistema,la data,l'orario,e il nome degl'utenti.

loggato
Incollare il seguente in un file di testo:


#!/bin/bash
# Write a shell script called hello which output the following:
# + Your username
# + The time and date
# + Who is logged on
# + also output a line of asterices (*******) after each section

# function to display a line of asterices
function line(){
echo "*************************************************"
}

echo "Your username : $(echo $USER)"
line # call function

echo "Current date and time : $(date)"
line

echo "Currently logged on users:"
who
line



Salvare il file con il nome "loggato.sh" e rendere il file eseguibile con:

chmod +x ./loggato.sh

per controllare digitare:

./loggato.sh

Calcolatrice (4 operazioni):
Questo script è una calcolatrice che permette di svolgere le 4 operazioni nel terminale.
Incollare il seguente in un file di testo:


#!/bin/bash
# Shell Program to simulate a simple calculator
# --------------------------------------------------------------------
# This is a free shell script under GNU GPL version 2.0 or above
# Copyright (C) 2005 nixCraft project.
# -------------------------------------------------------------------------

a=$1
op="$2"
b=$3

if [ $# -lt 3 ]
then
echo "$0 num1 opr num2"
echo "opr can be +, -, / , x"
exit 1
fi

case "$op" in
+) echo $(( $a + $b ));;
-) echo $(( $a - $b ));;
/) echo $(( $a / $b ));;
x) echo $(( $a * $b ));;
*) echo "Error ";;
esac


Salvate il file con il nome: "calc.sh" e rendere il file eseguibile con:

chmod +x ./calc.sh

Per fare un calcolo di prova digitate:

./calc.sh 7 + 6

e apparirà il risultato sotto.

Easy Converter:
Questo script è veramente ottimo,permette di convertire cartelle audio da un formato all'altro.
E' sufficiente il doppio-click per avviare l'applicazione.

Easy ConverterEasy ConverterEasy ConverterEasy Converter
Il programmino utilizza zenity,un'interfaccia grafica,dalla quale si seleziona la cartella,il formato "audio presente" e il formato di destinazione.
Il programma estrae anche le traccie audio dai file flash.
Zenity e ffmpeg dovrebberò essere già presenti nel dubbio digitare:

sudo apt-get install zenity ffmpeg

Incollare poi tutto il seguente in un file di testo:


#!/bin/bash

####################################
## Script made by Raymii.org ##
####################################

# V0.4 new features:
# Extension select before folder.
# Filter on extension
# Check if files exist in folder.
# Added .flv to input format
# Added .aac to input/output format
# Quality selector for ffmpeg
# removed folder check.
# added nautilus open when converting finished.
# fixed the ogg big files problem, thanks http://identi.ca/habtool and http://identi.ca/lesp


padself=`pwd`/`basename $0`

function catch_errors() {
zenity --question --text="There is something wrong. Do you want to quit or restart the app?" --cancel-label="Quit" --ok-label="Restart";
[ "$?" = "0" ] && ( bash -c $padself & );
exit 0;
}

function func_error2() {
echo `date +%h:%m:%s`
}

trap catch_errors ERR;

mapvraag=0
titel="EasyConverter v0.4g"
KBs=128;
FGOED=1;
opts="";

zenity --info --text="Hi, I'm $titel \nI will help you with converting files to another format. \n \nIn the next window, please select the format of the files. After that please select the folder which has the audio files." --title="$titel"

vanform=$(zenity --list --title="Select a file extension" --height=270 --text "Which filetype do you want to convert?" --radiolist --column "Choose" --column "Original Format" TRUE flac FALSE ogg FALSE wav FALSE mp3 FALSE aac FALSE flv);

mapvraag=$(zenity --file-selection --directory --title="Please select a folder with $vanform files." --file-filter="*.$vanform" );

pushd "$mapvraag"
for f in ./*.$vanform; do
test -f "$f" || continue
echo "$f bestaat, mooi zo.";
FGOED=2;
done
popd

if [ $FGOED == 1 ]; then
zenity --error --text="Oops, the filetype you selected is not found in the folder you selected. \nPlease try again." --title="$titel";
return 1;
fi

formaat=$(zenity --list --height=270 --text "And what should they become?" --radiolist --column "Choose" --column "Converted Format" TRUE mp3 FALSE ogg FALSE wav FALSE flac FALSE aac);
if [ $vanform = $formaat ]; then
zenity --error --text="You choose the same input and output format \nI can't convert the files if you do that. \nLets restart." --title="$titel"
return 1;
exit
fi

if [ $formaat == "ogg" ]; then
opts="-acodec libvorbis";
fi

KBs=$(zenity --list --height=380 --text "What output quality you want me to tell ffmpeg?\n64k: \nSmall files\nLow quality \n320k: \nBig files\nHigh quality." --radiolist --column "Choose" --column "kbps" TRUE 64 FALSE 96 FALSE 128 FALSE 192 FALSE 256 FALSE 320);

finalcheck=$(zenity --question --cancel-label="Don't" --ok-label="Lets Rock Baby!" --text="We're going to convert all files in: $mapvraag to $formaat at $KBs kb/s. Last check, Do or Don't?" --title="$titel")

trap func_error2 ERR;

pushd "$mapvraag"
for i in *.$vanform; do
mkdir -p "$mapvraag/converted/$formaat/"
ffmpeg -y -i "$i" -ab $KBs"k" $opts "$mapvraag/converted/$formaat/$i.$formaat" 2>&1 | zenity --progress --text="Converting: $i from $vanform to $formaat at $KBs kb/s" --title="$titel" --auto-close --pulsate
echo $i gedaan

done

zenity --question --cancel-label="Nope, just quit." --ok-label="Yes, open it." --text="Done! \nI've saved the converted files in this folder: $mapvraag/converted/$formaat. \n \nWould you like me to try and open Nautilus in the output folder? \n \n \nThis little script is made by: Raymii.org." --title="$titel";
[ "$?" = "0" ] && nautilus --no-desktop "./converted/$formaat";


popd
echo Done


Salvate il file con il nome:"easyconverter.sh",e rendere il file eseguibile con:

chmod +x ./easyconverter.sh

Per eseguire è sufficiente il doppio-click.

Traduttore:
Questo script permette di tradurre un documento da una lingua all'altra utilizzando google-translate.

TranslateTranslate
E'sufficiente fare doppio-click sullo script per avviare l'interfaccia,si seleziona il file da tradurre,la lingua di destinazione,e il file tradotto verrà salvato nella vostra home.
Il programm dipende da:zenity,wget,e bc.
Per installare le dipendenze:

sudo apt-get install zenity wget bc

Incollare adesso tutto il seguente in un file di testo:


#!/bin/sh -x
#tradurre documenti con google translate
#script di c.realkiller
#email dino.tartaro@gmail.com
#dipendenze zenity, wget, bc
TENTATIVI=10
TIMEOUT=5
rm /tmp/index.google &> /dev/null
wget -q --tries=$TENTATIVI --timeout=$TIMEOUT http://www.google.com -O /tmp/index.google &> /dev/null
if [ ! -s /tmp/index.google ];then
zenity --info --text="Non sei connesso, lo script necessita di una connessione per funzionare, effettua la connessione e rilancia lo script"
exit
else
zenity --info --text="Questo script si avvale di google translate per effettuare traduzioni di testi: seleziona un file da tradurre sul tuo PC, in seguito seleziona la lingua di ingresso del file e la lingua in cui desideri tradurre il documento, il file tradotto lo troverai nella tua home. (LO script dipende da bc, wget, zenity.)"
IN=$(cat $(zenity --file-selection --title "Seleziona il file da tradurre") | sed -e '/^$/d')
COUNT=$( echo "$IN" | wc -l )
PAG=`echo "100 / $COUNT" | bc -l`
SET=0
FAT=0
PERCENTAGE=0
LANGIN=`zenity --list --height=400 --width=300 --title "Seleziona la lingua di input" --checklist --column="check" --column="seleziona la lingua di input" false "it" false "en" false "bg" false "fr" false "nl" false "pl" false "ro" false "es" false "da" false "de" false "et" false "el" false "ga" false "lv" false "lt" false "hu" false "mt" false "pt" false "sk" false "sl" false "fi" false "sv"`
if [ "$?" = 1 ]; then
exit
fi
LANGOUT=`zenity --list --height=400 --width=300 --title "Seleziona la lingua di output" --checklist --column="check" --column="seleziona la lingua di output" false "it" false "en" false "bg" false "fr" false "nl" false "pl" false "ro" false "es" false "da" false "de" false "et" false "el" false "ga" false "lv" false "lt" false "hu" false "mt" false "pt" false "sk" false "sl" false "fi" false "sv"`
if [ "$?" = 1 ]; then
exit
fi
(while [ $COUNT -gt $SET ]
do
RIN=$(echo "$IN" | sed q)
wget -qO- "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$RIN&langpair=$LANGIN|$LANGOUT" | sed 's/.*"translatedText":"\([^"]*\)".*}/\1\n/' | sed "s/\\\u0026#39;/'/g" | sed 's/\\\u0026quot;/"/g' | sed 's/^[ \t]*//' 2>/dev/null >> $HOME/translate_$LANGOUT
IN=$(echo "$IN" | sed -e '1d')
COUNT=$(($COUNT - 1))
FAT=$(($FAT + 1))
PERCENTAGE=`echo "$PAG * $FAT" | bc -l`
echo -n $PERCENTAGE% | awk -F \% '{print $1}'
done) | zenity --progress --auto-close --text="Sto traducendo attendi......."
fi



Salvate il file con il nome:"translate.sh",e rendere il file eseguibile con:

chmod +x ./translate.sh

E' possibile tradurre file ".pdf",purchè l'estensione sia scritta in minuscolo.
Questo è tutto,buon divertimento :)

Share/Bookmark
Stampa il Post - Print this Post

Comments :

2 commenti to “ Bash (1) ”
FAUSTO ha detto...
on  

Semplicemente eccezionale!!!!!

silvio1964 ha detto...
on  

Grazie,sei sempre molto gentile...CIAO

Related Posts with Thumbnails