执行 bash 脚本时出现语法错误:'if' 不匹配

执行 bash 脚本时出现语法错误:'if' 不匹配

我想创建一个 bash 脚本来完成特定任务,尽管我对 bash 不了解。懒洋洋地直接在这里问它并不能很好地解释我的问题,所以我只是一直奋斗了1个小时并尽我所能,这样至少我的代码有一个基本结构(即使可能被破坏,但仍然会更容易)得到我的问题,以便更多的人愿意提供帮助)。

首先让我准确地显示我遇到的错误

$ su
$ sh "/sdcard/tester.sh"
/sdcard/tester.sh[2]: syntax error: 'if' unmatched

代码如下

#!/bin/bash
PACKAGE='com.mixplorer'
if [ $(pidof $PACKAGE) ]; then
am force-stop com.mixplorer
am start -n com.mixplorer/.activities.BrowseActivity

loopcleaner()
{
rm -rf /sdcard/log.txt
}

while [ $(pidof $PACKAGE) ]
do
loopcleaner
sleep 10

if [ ! $(pidof $PACKAGE) ]; then
break
mkdir /sdcard/successful.txt
fi
done

我想要实现的目标的解释:

1)一旦执行脚本,首先检查包名为“com.mixplorer”进程的文件管理器是否已经处于活动状态,如果是,则强制停止并再次打开它,如果不是,则只需打开它

2) 既然文件管理器已经打开,只要文件管理器进程正在运行,就不断地在循环中每隔 10 秒删除由 Loopcleaner 定义的名为“log.txt”的文件

3) 仅当文件管理器进程不再处于活动状态后,结束步骤 2 中的循环清理过程并创建一个名为 success.txt 的文件。创建此文件后,脚本应结束/终止其自己的进程

答案1

fi在本节末尾添加,如下所示:

if [ $(pidof $PACKAGE) ]; then
am force-stop com.mixplorer
am start -n com.mixplorer/.activities.BrowseActivity
fi

相关内容