在 shell 中执行 for 循环时,如何确保在循环执行完毕后退出当前 shell
时间: 2023-02-21 18:24:30 浏览: 46
在 shell 中执行 for 循环时,可以使用如下代码确保在循环执行完毕后退出当前 shell:
```
for i in [list]; do
[commands]
if [condition]; then
exit
fi
done
```
其中,[list] 是要循环执行的列表,[commands] 是在每次循环中要执行的命令,[condition] 是用于判断循环是否应该终止的条件。当 [condition] 满足时,使用 `exit` 命令退出当前 shell。
相关问题
shell 中执行for 循环,执行完毕后不回推出当前shell
在 shell 中执行 for 循环时,可以使用以下语法来确保在循环执行完毕后不退出当前 shell:
```
for ((i=0; i<10; i++)); do
# 执行命令
echo $i
done
```
这样,循环执行完毕后仍然保留当前 shell 的环境。
在bat中循环执行adb shell lspci指令 ,打印执行的次数,然后根据执行结果如果有一些打印例如 1101 ,决定继续执行否则退出循环
在批处理 (BAT) 文件中,你可以通过嵌套循环和条件判断来实现这个需求。首先,你需要安装并配置ADB工具,然后使用`for /L`命令来循环执行指定的`adb shell`命令。这里是一个基本的示例:
```batch
@echo off
setlocal enabledelayedexpansion
:: 设置循环次数
set count=0
:: 循环次数设置为5次作为示例,可根据需要调整
for /L %%i in (1,1,5) do (
:: 执行adb shell lspci命令
set /a count+=1
echo 正在执行第!count!次... (adb shell lspci)
:: 检查输出是否包含"1101"
for /F "tokens=* delims=" %%j in ('adb shell lspci | find "1101"') do (
if not defined found (
set "found=true"
echo 找到了匹配项!(1101)
)
)
:: 如果找到了"1101",则继续下一次循环
if defined found (
echo 继续执行...
) else (
echo 没有找到1101,退出循环。
break
)
)
:: 结束后显示最终信息
echo 已经执行完毕!总共执行了!count!次。
:: 关闭延迟变量扩展
endlocal
```
在这个脚本中,我们使用`for /L`来迭代次数,并检查每次输出中是否包含"1101"。如果找到了,我们就继续下一轮循环;如果没有,就退出循环。请注意,实际操作时可能需要根据实际情况调整`find`命令和匹配逻辑。
阅读全文
相关推荐
















