diff -u -r ../gawk-4.2.1/io.c ./io.c
--- ../gawk-4.2.1/io.c	2018-02-19 17:55:00.000000000 +0000
+++ ./io.c	2018-02-27 11:12:19.067766916 +0000
@@ -2025,7 +2025,7 @@
 
 		set_sigpipe_to_default();
 
-		execl("/bin/sh", "sh", "-c", command, NULL);
+		execl("@TERMUX_PREFIX@/bin/sh", "sh", "-c", command, NULL);
 		_exit(errno == ENOENT ? 127 : 126);
 
 	case -1:
@@ -2077,7 +2077,7 @@
 
 		signal(SIGPIPE, SIG_DFL);
 
-		execl("/bin/sh", "sh", "-c", command, NULL);
+		execl("@TERMUX_PREFIX@/bin/sh", "sh", "-c", command, NULL);
 		_exit(errno == ENOENT ? 127 : 126);
 
 	case -1:
@@ -2364,7 +2364,7 @@
 
 	/* stderr does NOT get dup'ed onto child's stdout */
 #ifdef __EMX__
-	pid = spawnl(P_NOWAIT, "/bin/sh", "sh", "-c", str, NULL);
+	pid = spawnl(P_NOWAIT, "@TERMUX_PREFIX@/bin/sh", "sh", "-c", str, NULL);
 #else  /* __MINGW32__ */
 	pid = spawnl(P_NOWAIT, getenv("ComSpec"), "cmd.exe", "/c",
 		     qcmd = quote_cmd(str), NULL);
@@ -2422,7 +2422,7 @@
 			fatal(_("close of pipe failed (%s)"), strerror(errno));
 		/* stderr does NOT get dup'ed onto child's stdout */
 		set_sigpipe_to_default();
-		execl("/bin/sh", "sh", "-c", str, NULL);
+		execl("@TERMUX_PREFIX@/bin/sh", "sh", "-c", str, NULL);
 		_exit(errno == ENOENT ? 127 : 126);
 	}
 #endif /* NOT __EMX__, NOT __MINGW32__ */
@@ -2634,7 +2634,7 @@
 	os_close_on_exec(save_stdout, cmd, "pipe", "from"); /* saved stdout of the parent process */
 
 #ifdef __EMX__
-	pid = spawnl(P_NOWAIT, "/bin/sh", "sh", "-c", cmd, NULL);
+	pid = spawnl(P_NOWAIT, "@TERMUX_PREFIX@/bin/sh", "sh", "-c", cmd, NULL);
 #else  /* __MINGW32__ */
 	pid = spawnl(P_NOWAIT, getenv("ComSpec"), "cmd.exe", "/c",
 		     qcmd = quote_cmd(cmd), NULL);
@@ -2659,7 +2659,7 @@
 		if (close(p[0]) == -1 || close(p[1]) == -1)
 			fatal(_("close of pipe failed (%s)"), strerror(errno));
 		set_sigpipe_to_default();
-		execl("/bin/sh", "sh", "-c", cmd, NULL);
+		execl("@TERMUX_PREFIX@/bin/sh", "sh", "-c", cmd, NULL);
 		_exit(errno == ENOENT ? 127 : 126);
 	}
 #endif /* NOT __EMX__, NOT __MINGW32__ */