-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdeclare.sh
executable file
·77 lines (60 loc) · 1.22 KB
/
declare.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/usr/bin/env bash
# --- Declare vs Normal Assign ---
function declare_vs_assign() {
# Declaration and assignment.
declare -i a=5
declare -i b="${a}"+3
echo "${b}"
# Assigns value to the variable.
# Variable is implicitly declared as default string type.
c=5
d="${c}"+3
echo "${d}"
}
# --- Local Variable ---
function declare_local() {
# local and variables are the same
local a='local a'
declare b='local b'
echo "${a}"
echo "${b}"
}
# --- Export Variable ---
function declare_export() {
declare -x MY_EXPORT='export'
env | grep MY_EXPORT
# Remove the export variable
unset MY_EXPORT
env | grep MY_EXPORT
}
# --- Integer ---
function declare_integer() {
# Declare am integer
declare -i a=$(( 3*5 ))
echo "${a}"
# Use (( expr )) to enable arithmetic evaluation in bash.
(( b=3*5 ))
echo "${b}"
}
# --- Indexed Array ---
function declare_indexed_array() {
declare -a array=('a' 'b' 'c')
echo "${array[@]}"
}
# --- Readonly Variable ---
function declare_readonly() {
declare -r const="immutable"
# Expect an error
const="mutable"
}
declare_vs_assign
echo ''
declare_local
echo ''
declare_export
echo ''
declare_integer
echo ''
declare_indexed_array
echo ''
declare_readonly