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

Re: [PATCH v2] Get rid of the non portable shell export VAR=VALUE costruct

From
Junio C Hamano <gitster@pobox.com>
Date
May 23, 2014, 18:39 UTC
Message-ID
<xmqqegzkjq5e.fsf@gitster.dls.corp.google.com>
In-Reply-To
<xmqqmwe8jr44.fsf@gitster.dls.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 7 quoted lines
> Elia Pinto <gitter.spiros@gmail.com> writes:
>
>> Found by check-non-portable-shell.pl
>
> Thanks.
>
> Makes me wonder why these two were missed, though.
Perhaps something like this?

I didn't check other rules, though, because I still have a feeling that this "pretend to understand the shell syntax and point out issues, without really parsing the script" is fundamentally an error-prone approach and am hesitant to loosen the patterns too much.

 t/check-non-portable-shell.pl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/t/check-non-portable-shell.pl b/t/check-non-portable-shell.pl
index 45971f4..24d7555 100755
--- a/t/check-non-portable-shell.pl
+++ b/t/check-non-portable-shell.pl
@@ -21,7 +21,7 @@ while (<>) {
 	/^\s*declare\s+/ and err 'arrays/declare not portable';
 	/^\s*[^#]\s*which\s/ and err 'which is not portable (please use type)';
 	/test\s+[^=]*==/ and err '"test a == b" is not portable (please use =)';
-	/^\s*export\s+[^=]*=/ and err '"export FOO=bar" is not portable (please use FOO=bar && export FOO)';
+	/(?:^|[^-a-zA-Z0-9_])export\s+[^=]*=/ and err '"export FOO=bar" is not portable (please use FOO=bar && export FOO)';
 	# this resets our $. for each file
 	close ARGV if eof;
 }
Previous: Junio C HamanoNext: Jonathan Nieder
Message 4 of 10 in “Get rid of the non portable shell export VAR=VALUE costruct”
  1. Get rid of the non portable shell export VAR=VALUE costructElia Pinto, May 23, 2014
  2. Jonathan NiederMay 23, 2014
  3. Junio C HamanoMay 23, 2014
  4. Junio C HamanoMay 23, 2014
  5. Jonathan NiederMay 23, 2014
  6. Jonathan NiederMay 23, 2014
  7. Torsten BögershausenMay 23, 2014
  8. Junio C HamanoMay 23, 2014
  9. Junio C HamanoMay 23, 2014
  10. Eric SunshineMay 23, 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.