shell使用while判断,直到检测到/dev/logmpp这个文件存在才退出while循环
时间: 2023-12-30 18:05:05 浏览: 114
你可以使用`while`循环和`test`命令来实现这个功能。以下是一个示例脚本:
```shell
while [ ! -e /dev/logmpp ]; do
sleep 1 # 每秒检查一次文件是否存在
done
```
在上面的脚本中,`[ ! -e /dev/logmpp ]`是一个条件表达式,`-e`选项用于检查文件是否存在。`!`符号表示逻辑取反,即文件不存在时条件为真。`sleep 1`命令用于暂停1秒钟,以便下次循环检查。
当文件`/dev/logmpp`存在时,循环条件为假,脚本将退出`while`循环。
请注意,这只是一个基本示例,你可以根据需要进行修改和扩展。
相关问题
#!/system/bin/sh # 指定需要监听的键值 keyvalue="00a5" # 监听 /dev/input/event0 设备文件 getevent -t /dev/input/event0 | while read line; do value=$(getevent -t -c 1 /dev/input/event0 | grep -oE '00a5' | tail -n 1) if [ "$value" = "$keyvalue" ]; then echo "Button KEY_PREVIOUSSONG is pressed." fi done 这样才有效果你给的没效果
很抱歉,我的回答没有达到你的预期,我理解有误了。在你提供的代码中,使用了 getevent 命令监听 /dev/input/event0 设备文件,并使用 while 循环读取事件信息。在 while 循环中,使用 grep 命令筛选出按键按下事件,并解析事件信息获取按键的 value 值,然后判断该值是否等于指定的键值。如果相等,则输出相应信息。
在运行代码时,需要注意以下几点:
1. 代码需要在 root 权限下运行。
2. 确认设备文件路径是否正确,不同设备可能路径不同。
3. 确认指定的键值是否正确,可以通过 getevent 命令获取键值信息。
4. 确认系统中是否有按键事件发生,否则代码不会输出信息。
如果还是没有效果,可以尝试使用以下命令查看代码运行时的输出信息,看看是否有错误提示:
```
adb shell sh -x /path/to/your/script.sh
```
其中,/path/to/your/script.sh 需要替换为你的脚本文件路径。
while read uin_begin uin_end alloc_cnt do ${qyy_tools} -f ScanAllocatableCount -b ${uin_begin} -e ${uin_end} > /dev/null 2>&1 ${qyy_tools} -f DeallocUinBatch -b ${uin_begin} -e ${uin_end} > /dev/null 2>&1 done < <(echo "$UinSection") kubectl -n wwlmail exec -i ${qyluinallocsvr_pod} -- /home/wwlocal/qyluinallocsvr/bin/qyuinallocsvrTool restart PASS=$(< /dev/urandom tr -dc 'A-Za-z'|head -c ${1:-9};< /dev/urandom tr -dc '!#$%@'|head -c ${1:-1};< /dev/urandom tr -dc '0-9'|head -c ${1:-2};echo) ${domainmng_tools} -f activeOwnerV2 -a ${corp_admin}@biz.mail.qq.com -p ${PASS} -e royhuang@vip.qq.com -n ${corp_name} > /dev/null 2>&1 _tmp=$(${owner_tools} -f get -a ${corp_admin}@biz.mail.qq.com |grep -w ${corp_admin}@biz.mail.qq.com |grep -v invalid |awk -F'[\\[\\]]' '{print $4}') if [[ X"${owneruin}" == X"$_tmp" ]] then ${owner_tools} -f setuserlimit -u ${owneruin} -l ${population} > /dev/null 2>&1 ${owner_tools} -f setusermaxcnt -u ${owneruin} -l ${population} > /dev/null 2>&1 ${owner_tools} -f setvip -u ${owneruin} > /dev/null 2>&1 info "[INIT Step 04] add corp ${owneruin} ok" else error "[INIT Step 04] add corp ${owneruin} error, pls check"
这是一个Linux Shell命令,含义是使用$qyy_tools工具扫描从uin_begin到uin_end之间的可分配数量,将结果输出到/dev/null,错误信息输出到标准错误输出(stderr)。
阅读全文
相关推荐

















