Add lint for backticks in shell scripts

The "$(some_command arg1 arg2)" form is preferred to the
`some_command arg1 arg2` form because it nests unambiguously.
Add a lint for this to tidy.
This commit is contained in:
Aneesh Agrawal 2016-08-04 15:16:04 -04:00
parent 4bc629b369
commit 79ef9b4efc
5 changed files with 24 additions and 14 deletions

View file

@ -4,4 +4,6 @@
set -o nounset
# Talking about some `concept in backticks` # shouldn't trigger
echo "hello world"
some_var=`echo "command substitution"`

View file

@ -52,6 +52,7 @@ class CheckTidiness(unittest.TestCase):
errors = tidy.collect_errors_for_files(iterFile('shell_tidy.sh'), [], [tidy.check_shell], print_text=False)
self.assertEqual('script does not have shebang "#!/usr/bin/env bash"', errors.next()[2])
self.assertEqual('script is missing options "set -o errexit", "set -o pipefail"', errors.next()[2])
self.assertEqual('script should not use backticks for command substitution', errors.next()[2])
self.assertNoMoreErrors(errors)
def test_rust(self):