git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 13/14] t1020-subdirectory.sh: use the $( ... ) construct for command substitution

From
Elia Pinto <gitter.spiros@gmail.com>
Date
Apr 28, 2014, 12:57 UTC
Message-ID
<1398689857-17014-13-git-send-email-gitter.spiros@gmail.com>
In-Reply-To
<1398689857-17014-1-git-send-email-gitter.spiros@gmail.com>

The Git CodingGuidelines prefer the $(...) construct for command substitution instead of using the backquotes `...`.

The backquoted form is the traditional method for command substitution, and is supported by POSIX. However, all but the simplest uses become complicated quickly. In particular, embedded command substitutions and/or the use of double quotes require careful escaping with the backslash character.

The patch was generated by:
for _f in $(find . -name "*.sh")
do
   sed -i 's@`\(.*\)`@$(\1)@g' ${_f}
done
and then carefully proof-read.
Signed-off-by: Elia Pinto <gitter.spiros@gmail.com>
---
 t/t1020-subdirectory.sh |   22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/t/t1020-subdirectory.sh b/t/t1020-subdirectory.sh
index 6902320..62c0d25 100755
--- a/t/t1020-subdirectory.sh
+++ b/t/t1020-subdirectory.sh
@@ -20,27 +20,27 @@ test_expect_success setup '
 
 test_expect_success 'update-index and ls-files' '
 	git update-index --add one &&
-	case "`git ls-files`" in
+	case "$(git ls-files)" in
 	one) echo pass one ;;
 	*) echo bad one; exit 1 ;;
 	esac &&
 	(
 		cd dir &&
 		git update-index --add two &&
-		case "`git ls-files`" in
+		case "$(git ls-files)" in
 		two) echo pass two ;;
 		*) echo bad two; exit 1 ;;
 		esac
 	) &&
-	case "`git ls-files`" in
+	case "$(git ls-files)" in
 	dir/two"$LF"one) echo pass both ;;
 	*) echo bad; exit 1 ;;
 	esac
 '
 
 test_expect_success 'cat-file' '
-	two=`git ls-files -s dir/two` &&
-	two=`expr "$two" : "[0-7]* \\([0-9a-f]*\\)"` &&
+	two=$(git ls-files -s dir/two) &&
+	two=$(expr "$two" : "[0-7]* \\([0-9a-f]*\\)") &&
 	echo "$two" &&
 	git cat-file -p "$two" >actual &&
 	cmp dir/two actual &&
@@ -55,18 +55,18 @@ rm -f actual dir/actual
 test_expect_success 'diff-files' '
 	echo a >>one &&
 	echo d >>dir/two &&
-	case "`git diff-files --name-only`" in
+	case "$(git diff-files --name-only)" in
 	dir/two"$LF"one) echo pass top ;;
 	*) echo bad top; exit 1 ;;
 	esac &&
 	# diff should not omit leading paths
 	(
 		cd dir &&
-		case "`git diff-files --name-only`" in
+		case "$(git diff-files --name-only)" in
 		dir/two"$LF"one) echo pass subdir ;;
 		*) echo bad subdir; exit 1 ;;
 		esac &&
-		case "`git diff-files --name-only .`" in
+		case "$(git diff-files --name-only .)" in
 		dir/two) echo pass subdir limited ;;
 		*) echo bad subdir limited; exit 1 ;;
 		esac
@@ -74,11 +74,11 @@ test_expect_success 'diff-files' '
 '
 
 test_expect_success 'write-tree' '
-	top=`git write-tree` &&
+	top=$(git write-tree) &&
 	echo $top &&
 	(
 		cd dir &&
-		sub=`git write-tree` &&
+		sub=$(git write-tree) &&
 		echo $sub &&
 		test "z$top" = "z$sub"
 	)
@@ -96,7 +96,7 @@ test_expect_success 'checkout-index' '
 
 test_expect_success 'read-tree' '
 	rm -f one dir/two &&
-	tree=`git write-tree` &&
+	tree=$(git write-tree) &&
 	read_tree_u_must_succeed --reset -u "$tree" &&
 	cmp one original.one &&
 	cmp dir/two original.two &&
-- 
1.7.10.4
Previous: Elia PintoNext: Elia Pinto
Message 13 of 15 in “t0001-init.sh: use the $( ... ) construct for command substitution”
  1. 01/14 t0001-init.sh: use the $( ... ) construct for command substitutionElia Pinto, Apr 28, 2014
  2. 02/14 t0010-racy-git.sh: use the $( ... ) construct for command substitutionElia Pinto, Apr 28, 2014
  3. 03/14 t0020-crlf.sh: use the $( ... ) construct for command substitutionElia Pinto, Apr 28, 2014
  4. 04/14 t0025-crlf-auto.sh: use the $( ... ) construct for command substitutionElia Pinto, Apr 28, 2014
  5. 05/14 t0026-eol-config.sh: use the $( ... ) construct for command substitutionElia Pinto, Apr 28, 2014
  6. 06/14 t0030-stripspace.sh: use the $( ... ) construct for command substitutionElia Pinto, Apr 28, 2014
  7. 07/14 t0300-credentials.sh: use the $( ... ) construct for command substitutionElia Pinto, Apr 28, 2014
  8. 08/14 t1000-read-tree-m-3way.sh: use the $( ... ) construct for command substitutionElia Pinto, Apr 28, 2014
  9. 09/14 t1001-read-tree-m-2way.sh: use the $( ... ) construct for command substitutionElia Pinto, Apr 28, 2014
  10. 10/14 t1002-read-tree-m-u-2way.sh: use the $( ... ) construct for command substitutionElia Pinto, Apr 28, 2014
  11. 11/14 t1003-read-tree-prefix.sh: use the $( ... ) construct for command substitutionElia Pinto, Apr 28, 2014
  12. 12/14 t1004-read-tree-m-u-wf.sh: use the $( ... ) construct for command substitutionElia Pinto, Apr 28, 2014
  13. 13/14 t1020-subdirectory.sh: use the $( ... ) construct for command substitutionElia Pinto, Apr 28, 2014
  14. 14/14 t1050-large.sh: use the $( ... ) construct for command substitutionElia Pinto, Apr 28, 2014
  15. Matthieu MoyApr 28, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.