我正在使用 Python 脚本每 2 分钟检测一次本地网络中连接的设备 - 将输出保存在一个文件中(我只保存 IP 的最后一个数字)。
这是我的代码:
import os
os.system('for ip in $(seq 1 10); do ping -c 1 192.168.1.$ip>/dev/null; '
'[ $? -eq 0 ] && echo "$ip" || : ; '
'done > /home/pi/Desktop/Network/logs/logLocal.txt')
输出例如:
1
2
4
7
我现在的问题是,是否可以通过一个词来代替数字 7? 如果找到设备 7,程序将在文件中写入“七”而不是 7。
感谢您的帮助!
最佳答案
以下脚本将完成这项工作:
# Note that you can use `{a..b}` instead of `seq`
for ip in {1..10} ; do
# No need to execute the command and then check it's
# return value. You can do it in one line
if ping -c 1 192.168.1.$ip > /dev/null ; then
# check for `7`
if [ "$ip" = "7" ] ; then
echo "seven"
else if [ "$ip" = 5 ] ; then
echo "five"
# ... and so on
else
echo "$ip"
fi
fi
done > output.txt
关于linux - 有条件地用单词替换数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29173675/