Search code examples
bashshellunixquoting

How to properly nest Bash backticks


Either I missed some backlash or backlashing does not seem to work with too much programmer-quote-looping.

$ echo "hello1-`echo hello2-\`echo hello3-\`echo hello4\`\``"

hello1-hello2-hello3-echo hello4

Wanted

hello1-hello2-hello3-hello4-hello5-hello6-...

Solution

  • 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