![echo 1 > “runcount.txt” 未写入文件](https://linux22.com/image/926485/echo%201%20%3E%20%E2%80%9Crunco%E2%80%8B%E2%80%8Bunt.txt%E2%80%9D%20%E6%9C%AA%E5%86%99%E5%85%A5%E6%96%87%E4%BB%B6.png)
我试图保持我的脚本将特定条件评估为真的次数的计数,并希望将其计数写入单独的文件。
以下是我的文件的相关内容。
#!/bin/bash
IFS=$'\n'
status=$(getstatus) #command which returns status
if [[ $status != *"RUNNING"* ]]; then
echo 1 > "runcount.txt"
fi
但是,我没有看到 1 被写入runcount.txt
,控制台上也没有出现任何错误。任何帮助修复这个问题的帮助都会非常有用。
谢谢
答案1
我假设getstatus
你得到一个字符串。你想检查该字符串中的子字符串跑步被包含。
我建议您使用 grep。
#!/bin/bash
getstatus(){ echo Im RUNNING now; }
IFS=$'\n'
status=$(getstatus|grep -c RUNNING)
if [[ $status -gt 0 ]]; then
echo 1 > "runcount.txt"
fi
grep 搜索字符串跑步。该选项-c
仅计算其出现的频率。所以$status
现在是一个 int。如果它出现的次数多于 never,它会将 1 写入您的文本文件。
请删除适合您版本的测试功能getstatus()
。