shell发送到后台执行的脚本如何得到返回码
时间: 2024-04-21 16:22:50 浏览: 9
在Shell中,你可以使用特殊变量`$?`来获取上一个命令的退出状态码。这个特殊变量会保存上一个命令执行后的返回码。
当你将一个脚本发送到后台执行时,你可以通过以下方式来获取它的返回码:
1. 在发送到后台执行的命令后面添加`$!`来获取后台进程的PID(进程ID),例如:
```shell
./your_script.sh &
pid=$!
```
2. 使用`wait`命令等待后台进程执行完成,并获取它的返回码,例如:
```shell
wait $pid
return_code=$?
```
完整的示例代码如下:
```shell
#!/bin/bash
./your_script.sh & # 将脚本发送到后台执行,并获取后台进程的PID
pid=$!
wait $pid # 等待后台进程执行完成
return_code=$? # 获取脚本的返回码
echo "脚本的返回码为: $return_code"
```
通过以上方式,你可以在Shell脚本中获取到后台执行脚本的返回码,并进行相应的处理。
相关问题
linux将shell脚本放到后台执行
在Linux中,可以使用&符号将shell脚本放到后台执行。具体步骤如下:
```bash
./yourscript.sh &
```
其中,yourscript.sh是你要执行的shell脚本的文件名。在脚本命令后面加上&符号即可将其放在后台运行。
另外,如果你想要守护一个进程,可以使用守护进程shell脚本。该脚本可以检测当前目录下需要守护的程序是否已经执行,如果已经执行,只需守护,如果没运行,会自动启动程序并进行守护。其他目录下同名的程序运行不影响当前目录的进程守护。具体用法可以参考引用中的说明。
shell脚本 后台执行
要使shell脚本后台执行,有几种方法可以实现。一种方法是在脚本后面追加符号&,这样脚本将在后台执行。另一种方法是在脚本前面使用nohup命令,结尾再追加符号&。这样即使关闭了终端,脚本也会继续在后台运行。另外,如果需要中断后台运行的脚本,可以使用fg %number命令将脚本切换到前台,然后使用ctrl c来中断脚本的执行。或者可以直接使用kill %number命令来终止脚本的执行。这些方法可以让你方便地将shell脚本在后台执行。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [让shell脚本在后台执行](https://download.csdn.net/download/wo198711203217/8674143)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [shell 后台运行](https://blog.csdn.net/londa/article/details/115698093)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]