My colleagues encountered a wonderful problem:
When running lunch in the removed source code directory and selecting the compilation option, the system prompts that lunch is not installed ~
As follows:
Root @ desktop-Ubuntu:/android_src #./Build/envsetup. Sh
Including device/HTC/passion/vendorsetup. Sh
Including device/Samsung/crespo4g/vendorsetup. Sh
Including device/Samsung/Crespo/vendorsetup. Sh
Root @ desktop-Ubuntu:/android_src #Lunch
Program"Lunch" is not installed yet. You can use the following command to install:
Apt-GetInstall lunch
We are wondering, because lunch is not an executable program at all, but simply a function written in the envsetup. Sh file, which cannot be understood. Finally, it is found that the first command is wrong ~
The correct format should be:
. Build/envsetup. Sh //Be sure to note that. There is a space behind it.
In this way, lunch execution will not go wrong ~ But what is the reason? I don't want to understand it. Please let me know if you know it ~
========================================================== ====================
The following is an explanation provided by a silly online user. Thank you, this dear friend:
Source command usage:
Source filename
Purpose: read and execute the command in filename in the current bash environment.
Note: This command is usually replaced by the "." command.
For example, source. bash_rc and. bash_rc are equivalent.
Note: The difference between the source command and shell scripts is,
Source executes the command in the current bash environment, and scripts starts a sub-shell to execute the command. In this way, if you write the commands for setting environment variables (or alias) into scripts, it will only affect the sub-shell and cannot change the current bash. Therefore, through the file (command column) when setting environment variables, use the source command.