Quando si dice la serendipità ! 💥
Un meraviglioso post di Julia b0rk
Evans mi fornisce lo spunto per un post che diventerà presto (ma non subito) utile con la telenovela su JavaScript.
Mi sa che l’argomento viene visto in modo diverso da Linux e Windows. Comincio con Linux, anche perché è quello che 1) rockz! 🚀 ; e 2) il mio OS 💥.
Ci sono tante variabili predefinite, per esempio USER
:
Posso definirne di nuove, per esempio nel terminale:
Così definita è una variabile locale al terminale che l’ha definita. Posso verificarlo con lo script vv.sh
echo $MYVAR
Non viene vista perché è locale al terminale. Per renderla globale (nel senso che sarà precisato tra poco) bisogna espertarla:
Apro uno nuovo terminale (con Ctrl-Alt-T
o utilizzando il tasto destro del mouse all’interno del gestore dei files e selezionando “Apri nel terminale”) MYVAR
non risulta definita:
Questo perché il nuovo terminale è indipendente da quello in cui la variabile MYVAR
è stata definita.
Se invece dal terminale originario apro un terminale figlio (child), così:
MYVAR
c’è come previsto. OK, con questo dovrebbe aver chiarito cosa s’intende per locale e globale.
Quando una variabile è davvero importane si può definire in uno dei file di configurazione, nel caso più normale ~/.bashrc
.
Tutto questo per poterla usare negli script, ecco per esempio con Python:
import os
print(os.getenv("USER"))
print(os.getenv("MYVAR"))
E, come vedremo prossimamente con NodeJS:
console.log(process.env["USER"]);
console.log(process.env["MYVAR"]);
Windows
Io sono negato con Windows 10 ma sono riuscito a fare questo:
Per aprire il terminale che li si chiama Prompt dei comandi (o qualcosa di simile) ci sono diverse possibilità :
- tasto
Windows + S
apre cerca; scriverecmd + Invio
; - tasto
Windows + X
apre il menu; selezionare findestra dei comandi (o qualcosa di simile); - tasto
Windows + R
apre una finestra per ricevere i comandi; scriverecmd + Invio
;
È possibile aprire quante finestre si vuole ma le variabili settate sono visibili solo nella finestra in cui sono state definite. A differenza di Linux non c’è distinzione tra maiuscolo e minuscolo e invece del $
iniziale il nome dev’essere riferito racchiudendolo tra %
.
Inoltre l’history dei comandi viene cancellata quando si chiude la finestra.
Siccome non uso mai Windows forse ci sono altre cose che non so; suggerimenti benvenuti 😊
Argomenti sulla linea di comando
Lo vedremo anche questo prossimamente ma rispondo a una richiesta via mail. Come i normali linguaggi anche con NodeJS è possibile passare argomenti allo script che si vuole eseguire; ecco a.js
:
args = process.argv
console.log(args.length)
console.log(args)
console.log(args[2])
Commenti
Ottimo, ricordati pure di “env”. Forte davvero b0rk!