Replace one substring for another string in shell script

To replace the first occurrence of a pattern with a given string, use ${parameter/pattern/string}: #!/bin/bash firstString=”I love Suzi and Marry” secondString=”Sara” echo “${firstString/Suzi/”$secondString”}” # prints ‘I love Sara and Marry’ To replace all occurrences, use ${parameter//pattern/string}: message=”The secret code is 12345″ echo “${message//[0-9]/X}” # prints ‘The secret code is XXXXX’ (This is documented in the … Read more

How to escape single quotes within single quoted strings

If you really want to use single quotes in the outermost layer, remember that you can glue both kinds of quotation. Example: alias rxvt=”urxvt -fg “”‘”‘#111111′”‘”‘ -bg ‘”‘”‘#111111′”‘” # ^^^^^ ^^^^^ ^^^^^ ^^^^ # 12345 12345 12345 1234 Explanation of how ‘”‘”‘ is interpreted as just ‘: ‘ End first quotation which uses single quotes. … Read more

How can I declare and use Boolean variables in a shell script?

Revised Answer (Feb 12, 2014) the_world_is_flat=true # …do something interesting… if [ “$the_world_is_flat” = true ] ; then echo ‘Be careful not to fall off!’ fi Original Answer Caveats: https://stackoverflow.com/a/21210966/89391 the_world_is_flat=true # …do something interesting… if $the_world_is_flat ; then echo ‘Be careful not to fall off!’ fi From: Using boolean variables in Bash The reason … Read more

echo that outputs to stderr

You could do this, which facilitates reading: >&2 echo “error” >&2 copies file descriptor #2 to file descriptor #1. Therefore, after this redirection is performed, both file descriptors will refer to the same file: the one file descriptor #2 was originally referring to. For more information see the Bash Hackers Illustrated Redirection Tutorial.

Difference between sh and Bash

What is sh? sh (or the Shell Command Language) is a programming language described by the POSIX standard. It has many implementations (ksh88, Dash, …). Bash can also be considered an implementation of sh (see below). Because sh is a specification, not an implementation, /bin/sh is a symlink (or a hard link) to an actual … Read more