From 1aa58cb4402eaf5a8571f4960f23682afcfef6cc Mon Sep 17 00:00:00 2001 From: koalaman Date: Sat, 1 Mar 2014 16:10:50 -0800 Subject: [PATCH] Created SC2016 (markdown) --- SC2016.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 SC2016.md diff --git a/SC2016.md b/SC2016.md new file mode 100644 index 0000000..e23f5ff --- /dev/null +++ b/SC2016.md @@ -0,0 +1,23 @@ +# Expressions don't expand in single quotes, use double quotes for that. + +### Problematic code: + + name=World + echo 'Hello $name' + +### Correct code: + + name=World + echo "Hello $name" + +### Rationale: + +Single quotes prevent expansion of everything, including variables and command substitution. + +If you want to use the values of variables and such, use double quotes instead. + +### Contraindications + +If you want `$stuff` to be a literal dollar sign followed by the characters "stuff", you can ignore this message. + +ShellCheck tries to be smart about it, and won't warn when this is used with awk, perl and similar, but there are some inherent ambiguities like `'I have $1 in my wallet'`, which could be "one dollar" or "whatever's in the first parameter". \ No newline at end of file