Ubuntu Shell causes compilation problems when compiling the Linux source package provided by Realtek under Ubuntu13.04 [plain] make_release: 344: make_release: Syntax error: "do" unexpected (expecting "fi") mv: unable to get "drivers/net/wireless/realtek/pci/rtl8192ce /.. /.. /combo/rtl8192c_8192d/rtl8192_8188CE_linux_drv/"File status (stat): no file or directory changed to Fedora16, and the compilation was successful. Refer to the online materials and find that the problem is caused by Ubuntu's default Shell. Unbuntu defaults to sh -->/bin/dash, which is inconsistent with the bash standard of Fedora. When echo $ SHELL returns/bin/bashls/bin/sh, it directs to/bin/dashmake, although the makefile already contains #! /Bin/bash, but sh is actually called. (This makefile is in the sub-directory) bash-GNU Bourne-Again SHelldash-Debian almqualified Shell solution: the solution to invalid file limitation mentioned on the Internet: # Used in the first line of the file #! /Bin/bash does not actually work. The first line of the file uses SHELL =/bin/bash and is not tested, but it should not work. Echo $ SHELL has pointed to the bash online document to provide the final solution: [plain] sudo dpkg-reconfigure dash select NO in the menu that appears (do not use dash)