Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Linux dalla Console - terza serata
Search
BgLUG
April 05, 2017
Programming
1
350
Linux dalla Console - terza serata
Bash scripting
BgLUG
April 05, 2017
Tweet
Share
More Decks by BgLUG
See All by BgLUG
Introduzione a Python – Ecosistema Python e usi specifici
bglug
1
290
Introduzione a Python – Funzionalità di base e strutture dati
bglug
1
300
Linux dalla Console - quarta serata
bglug
0
220
Linux dalla Console - seconda serata
bglug
1
300
Linux dalla Console - prima serata
bglug
1
370
Other Decks in Programming
See All in Programming
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
270
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
560
高速開発のためのコード整理術
sutetotanuki
1
400
Grafana:建立系統全知視角的捷徑
blueswen
0
330
Data-Centric Kaggle
isax1015
2
770
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
620
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
170
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
130
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
960
Featured
See All Featured
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
117
110k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
320
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
710
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
Being A Developer After 40
akosma
91
590k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
120
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
120
Claude Code のすすめ
schroneko
67
210k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
320
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
120
Transcript
Linux dalla console — 3 Bash scripting Emiliano Vavassori 5
aprile 2017 FabLab Bergamo Patronato San Vincenzo, Bergamo Bergamo Linux Users Group 1
Sommario Generalità sullo scripting Programmazione in bash Variabili Controllo di
flusso Cicli Subshell Input dall’utente Argomenti Lavorare con i file 2
Generalità sullo scripting
Generalità Uno script è un file di testo contenente istruzioni
che un interprete (ad esempio la shell) esegue nell’ordine in cui le stesse istruzioni sono state inserite. bash può interpretare comandi interni o esterni: comandi propri della shell (if, for, test, …) o comandi esterni (ls, mkdir, grep, awk, …). 3
Cenni sull’esecuzione batch $ bash -c '<comando 1>; <comando 2>;
\ <comando 3>' 4
Qualche trucco per eseguire più comandi… $ <comando 1> &&
<comando 2> || <comando 3> $ <comando molto lungo> & $ fg $ nohup <comando> >logfile 5
Anatomia di uno script Estratto: nomescript.sh #!/bin/bash # Commenti <comando
1> <comando 2> <comando 3> <comando 4> # Ulteriori comandi 6
Eseguire uno script $ bash nomescript.sh 7
Eseguire uno script — Eseguibile? $ chmod +x nomescript.sh $
./nomescript.sh 8
Qualche altro trucco sugli eseguibili… Attenzione a chi do accesso
in esecuzione! $ chmod +x nomefile.sh || chmod u+x nomefile.sh Percorso di sistema — $PATH $ cp nomescript.sh $HOME/bin/; cd /tmp $ nomescript.sh 9
Programmazione in bash
Definizione delle variabili $ miavariabile="ciccio pasticcio" Variabili d’ambiente: $ export
MIAVAR="valore" 10
Distruzione di una variabile $ unset MIAVAR 11
Uso delle variabili $ echo "$miavariabile" > ciccio.txt $ echo
"${miavariabile}" > ciccio.txt 12
Controllo di flusso — if $ if [[ … ]];
then … elif [[ … ]]; then … else … fi 13
Controllo di flusso — case $ case $var in 1)
<comando 1> ;; 2-5) <comando 2> ;; *) <comando default> ;; esac 14
Ciclo for $ for f in <seq>; do … done
15
Sostituire i cicli con find e xargs $ find .
-iname \*.txt -exec chmod go-wx {} \; $ find /tmp -iname \*.sh | xargs grep sudo 16
Farsi ritornare il risultato di un comando $ var=` <comando
1> ` $ var=$( <comando 2> ) 17
Input dall’utente Caserecci: $ echo -n "Dimmi il tuo nome:
"; read var Un po’ più carini: $ var=`whiptail --inputbox "Dimmi il tuo nome:" \ 0 0 3>&1 1>&2 2>&3` 18
Non sempre comodo… Spesso e volentieri si preferisce chiedere input
all’utente tramite gli argomenti dello script. $ bash mioscript.sh argomento1 argomento2 19
Argomenti $0 Percorso e nome dello script $1 Primo argomento
$2 Secondo argomento … $@ Tutti gli argomenti $# Il numero degli argomenti passati 20
Lavorare con i file $ dirname $var $ basename $var
.ext 21