Linux 如何从其他shell切换到bash shell?

Linux 如何从其他shell切换到bash shell?,linux,bash,unix,Linux,Bash,Unix,我正在运行一个shell脚本envsetup.sh,不断出现以下错误 Badly placed ()'s 我发现错误是因为我不在bashshell环境中。有人能解释一下如何进入bash shell环境吗?试着说: #!/bin/bash 作为脚本的第一行。 我假设bash命令文件位于/bin中-如果没有,请查找它的位置并使用该路径。要切换到读取配置文件等的bash登录shell,您应该键入: exec bash -l l选项表示它应该是一个登录shell。然后,您可以使用以下命令读取env

我正在运行一个shell脚本envsetup.sh,不断出现以下错误

Badly placed ()'s
我发现错误是因为我不在bashshell环境中。有人能解释一下如何进入bash shell环境吗?

试着说:

#!/bin/bash
作为脚本的第一行。 我假设bash命令文件位于/bin中-如果没有,请查找它的位置并使用该路径。

要切换到读取配置文件等的bash登录shell,您应该键入:

exec bash -l
l选项表示它应该是一个登录shell。然后,您可以使用以下命令读取envsetup.sh文件:

source envsetup.sh
您可以使用chsh命令,使用以下行永久更改登录shell:

chsh /bin/bash

只需确保指定的名称是bash副本的正确路径。

假设您正在尝试编译Android,您可以执行以下操作以临时使用bash:

$ bash
$ source ./envsetup.sh
要在bash中运行单个脚本envsetup.sh,请按如下方式调用它:

bash envsetup.sh

如果您可以发布脚本中导致此错误的部分,这将非常有帮助。欢迎使用堆栈溢出。请尽快阅读这一页。如果您不向我们显示导致问题的代码,您希望我们如何帮助您。请尝试使用bash-x envsetup.sh进行调试。如果不是bash,您将使用哪个shell?如果您编写echo$SHELL,它可能会告诉您。如果您使用的是csh,那么您可以使用exec bash,然后键入source envsetup.sh,然后可能使用exec csh切换回csh。您可以使用CHSH程序永久切换您的登录shell。@ JONAATEN LIFFLFER -我只需要知道将shell更改为BASH。@ USER44103,您不能在脚本中间更改shell,而不会丢失所有状态。在我们告诉您如何更改外壳之前,我们需要知道您是如何进入外壳的。它是否与您的操作系统帐户关联?是shebang中的shell(脚本的第一行)反过来为您的envsetup.sh提供了源代码吗?其他信息是绝对必要的,以确保我们能够提供正确答案;否则,人们会猜测细节。试着运行bash-vx envsetup.sh,它会显示每个执行的子命令直到错误。。。也许您的脚本使用了一些bash,而您的shell可能是其他东西?如果问题是按照envsetup.sh的名称设置环境,这可能不会有帮助。bash是否位于/bin实际上并不重要。这个/bin/bash是一种约定:它不会将其映射到实际的可执行文件。@Curt:它通常很重要,但会映射到可执行文件。尝试使用/否/where/bash,然后尝试以envsetup.sh或/envsetup.sh的形式运行脚本,并注意“未找到命令”错误。如果源代码为source envsetup.sh或。envsetup.sh,这无关紧要,但有具体的原因。我可以返回到原始查询并询问您是否真的要更改为bash shell吗?问题不在于脚本中某些代码的语法是特定于bash的吗?看看使用在sh、csh、ksh或其他shell中工作的语法是否更有用?p、 您也可以使用>/bin/bash./envsetup.shan其他注意事项是使用>/envsetup.sh将脚本中的更改应用于当前shell。