How to properly nest Bash backticks
Use $(commands)
instead:
$ echo "hello1-$(echo hello2-$(echo hello3-$(echo hello4)))"hello1-hello2-hello3-hello4
$(commands)
does the same thing as backticks, but you can nest them.
You may also be interested in Bash range expansions:
echo hello{1..10}hello1 hello2 hello3 hello4 hello5 hello6 hello7 hello8 hello9 hello10
Any time you want to evaluate a command use command substitution
:
$(command)
Any time you want to evaluate an arithmetic expression use expression substitution
:
$((expr))
You can nest these like this:
Let's say file1.txt is 30 lines long and file2.txt is 10 lines long, than you can evaluate an expression like this:
$(( $(wc -l file1.txt) - $(wc -l file2.txt) ))
which would output 20 ( the difference in number of lines between two files).