martedì 13 novembre 2012

Brevi esercizi #2 Edizione speciale

Ebbene sì, già alla seconda puntata di "Brevi esercizi". Questa però è un'edizione straordinaria. Il caro Robitex ha postato nei commenti del post "Brevi esercizi #1" (che trovate qui) due script, uno in Lua e l'altro in Go, che non  potevano affatto passare inosservati.

Nel post precedente avevo creato prima una directory, poi all'interna della stessa 10 file e, infine, col comando tee avevo scritto la stessa frase in ognuno di essi.
Passiamo ora agli script di Robitex che creano dieci file, ci scrivono dentro la stessa frase, ma non creano la directory :))
Iniziamo dallo script in Lua. Per installare Lua su debian testing (ma penso anche su ubuntu)

$ sudo apt-get install lua5.2

#!/usr/bin/lua

-- comando per la creazione di file di testo
-- arg1 -> numero file (default 10)

local numfile = arg[1] or 10

local text = "Buongiorno a tutti!"

for i = 1, numfile do
local f = assert(io.open( i..".txt" , "w" ))
f:write(text)
f:close()
end

Ora creiamo la cartella (directory) test e spostiamoci dentro

$ mkdir test && cd test

mettiamoci dentro lo script. (mkfile)

E poi eseguiamolo

 $ ./mkfile

Passiamo allo script in Go

Per installare Go su debian

$ sudo apt-get install golang

package main

import (
"io/ioutil"
"fmt"
)

var text []byte = []byte("Buongiorno a tutti!")

func main() {
            for i:=1; i<10; i++ {
               t :=fmt.Sprintf("%d.txt", i)
               ioutil.WriteFile(t,text, 0644)
             }
}


Anche in questo caso creiamo la cartella test e spostiamoci dentro

$ mkdir test && cd test

mettiamoci dentro lo script (mkfile.go)

ed eseguiamolo

$ go run mkfile.go

Pure io ho creato uno script semplice semplice, in bash :))

#!/bin/bash

a=test
test -d $a || mkdir -p $a && cd $a
touch {1..10}.txt
for i in *.txt; do
    echo 'buongiorno a tutti!' | tee -a $i
done
exit 0

Salviamolo nella home, rendiamolo eseguibile

$ chmod +x mkfile.sh

Ed eseguiamolo

$ ./mkfile.sh

Lo script crea la cartella, si sposta dentro la stessa e crea i dieci file; infine scrive l'identica frase in ognuno di essi.

Vi ricordo che il caro Juhan sta tenendo un corso su Go. Ha già scritto due post. Qui e qui.
Il Blog di Robitex invece lo trovate qui. Ritengo che sia un blog straordinario e ricchissimo di contenuti. Inoltre vi invito a leggere un suo post sulle espressioni regolari in Perl. qui.

Alla prossima

2 commenti: