0

我正在尝试编写一个简单的脚本(用于嵌入式系统),它从网络安装一个外部文件,然后exit在命令行上调用(退出busybox终端并从新安装的根目录启动系统)。问题是,当我exit从 shell 脚本调用时,它会退出脚本,而不是外部终端。关于如何exit在脚本之外发送命令的任何提示?

我的代码看起来像这样:

#!/bin/bash
mount /mnt/root 1.2.3.4:/path/to/external/files -o nolock
exit   # exits the script, not the outside filesystem!
4

2 回答 2

3

exit确实退出了当前的外壳。但是,运行脚本会创建一个新进程,并且退出的是该进程,而不是您调用脚本的 shell。

您可能只想简单地获取文件:

$ source myScript.sh

然后myScript.sh在当前 shell 中执行,而不是在衍生进程中执行,并且exit将从您当前的 shell(以及终端本身)退出。

于 2013-06-03T15:38:34.473 回答
1

如果您希望脚本退出外部终端,请像这样调用它:

source your_script

要不就

. your_script

其中.与命令相同source。如果您需要更多信息,可以关注这篇文章。


说明:将在当前sourceshell中执行脚本,因此退出将由当前 shell 解释 - 如果 shell 是树中的第一个 shell,将关闭伪(!)终端窗口

于 2013-06-03T15:38:47.727 回答