Guida introduttiva
Introduzione
Questo è un rapido riferimento per iniziare con Bash scripting.
- Imparare bash in y minuti (learnxinyminutes.com)
- Guida Bash (mywiki.wooledge.,td>
${FOO:(-3):3}Substring from the right Length
Expression Description ${#FOO}Length of $FOOManipulation
Default values
Omitting the
:removes the (non)nullity checks, e.,g.${FOO-val}expands tovalif unset otherwise$FOO.,/div>Expression Description $#Number of arguments $*All arguments $@All arguments, starting from first $1First argument $_Last argument of the previous command See Special parameters.,043f44″>
File conditions
Example
# Stringif ]; then echo "String is empty"elif ]; then echo "String is not empty"else echo "This never happens"fi
# Combinationsif ]; then ...fi
# Equalif ]
# Regexif ]
if (( $a < $b )); then echo "$a is smaller than $b"fi
if ]; then echo "file exists"fi
Arrays
Defining arrays
Fruits=('Apple' 'Banana' 'Orange')
Fruits="Apple"Fruits="Banana"Fruits="Orange"
Working with arrays
Operations
Iteration
for i in "${arrayName}"; do echo $idone
Dictionaries
Defining
declare -A sounds
sounds="bark"sounds="moo"sounds="tweet"sounds="howl"
Declares sound as a Dictionary object (aka associative array).,
Lavorare con i dizionari
Iterazione
Scorrere i valori
for val in "${sounds}"; do echo $valdone
Scorrere i tasti
for key in "${!sounds}"; do echo $keydone
Opzioni
Opzioni
set -o noclobber # Avoid overlay files (echo "hi" > foo)set -o errexit # Used to exit upon error, avoiding cascading errorsset -o pipefail # Unveils hidden failuresset -o nounset # Exposes unset variables
Glob opzioni
GLOBIGNORE come separati da due punti, elenco di motivi per essere rimosso dal globmatches.,>
!-nnth most recent command!nnth command in history!<command><command> Operations
!! and !$ can be replaced with any valid expansion.,aec7ee5e”>
)
!^!$!!:n-m!!:n-$nth token to last from most recent command!! can be replaced with any valid expansion i.,e. !cat, !-2, !42, ecc.,
Special variables
| Expression | Description |
|---|---|
$? |
Exit status of last task |
$! |
PID of last background task |
$$ |
PID of shell |
$0 |
Filename of the shell script |
See Special parameters.,
pwd # /home/user/foocd bar/pwd # /home/user/foo/barcd -pwd # /home/user/foo
Check for command’s result
if ping -c 1 google.com; then echo "It appears you have a working internet connection"fi
Grep check
if grep -q 'foo' ~/.bash_history; then echo "You appear to have typed 'foo' in the past"fi




