#!/bin/sh while true; do if [ -e /tmp/4G.error ]; then echo "Found /tmp/4G.error, calling net4g_auto" net4g_auto break fi sleep 1 done 把上述脚本改成do while
时间: 2024-02-19 10:58:39 浏览: 97
在 Shell 脚本中没有 `do while` 语法,可以使用 `while true; do ... done` 来代替。不过如果一定要使用 `do while` 的语法,可以使用以下的方法实现:
```
#!/bin/sh
found_error=false
while true; do
if [ -e /tmp/4G.error ]; then
found_error=true
break
fi
sleep 1
done
if $found_error; then
echo "Found /tmp/4G.error, calling net4g_auto"
net4g_auto
fi
```
这个脚本会先定义一个变量 `found_error` 并设置为 `false`。然后使用 `do while` 的语法来循环,检查 `/tmp/4G.error` 文件是否存在。如果存在就将 `found_error` 设置为 `true` 并跳出循环。循环结束后,再根据 `found_error` 的值来判断是否需要执行 `net4g_auto` 命令。
相关问题
linux sh 循环检测/tmp/4G.error文件是否存在,存在就调用 net4g_auto
可以使用以下的 shell 脚本实现:
```
#!/bin/sh
while true; do
if [ -e /tmp/4G.error ]; then
echo "Found /tmp/4G.error, calling net4g_auto"
net4g_auto
break
fi
sleep 1
done
```
这个脚本会不停地检查 `/tmp/4G.error` 文件是否存在,如果存在就会调用 `net4g_auto` 命令。如果文件不存在就会等待一秒钟后再次检查。可以将这个脚本保存为一个文件,比如 `monitor.sh`,然后使用 `chmod +x monitor.sh` 命令添加可执行权限。最后可以使用 `./monitor.sh` 命令来运行这个脚本。
阅读全文