希望有人帮助我了解这一行代码。
使用diff
命令比较两个文件,这些文件以某种方式允许其他命令(例如message:0:1
和message:23:17
)访问它的结果。
这是如何运作的?
message=$(diff previousscan.txt scan.txt | grep 192)
#get first char which indicates if the host came up or went away
iostring="${message:0:1}"
#get first ip-number from the list
computer="${message:23:17}"
#show ip-number in notify if host came up
if [ "$iostring" = \> ]; then
notify-send "$computer online"
fi
#show ip-number in notify if host went away
if [ "$iostring" = \< ]; then
notify-send "$computer offline"
fi
答案 0 :(得分:3)
$message
不是命令;它是一个保存diff命令的输出的变量。后面的行参考子串; ${message:0:1}
是存储在$message
中的任何内容的第一个字符(从偏移0开始的1个字符)。
显示子字符串机制的简单示例:
$ message="abcdefghijklmnop"
$ echo ${message:0:1}
a
$ echo ${message:7:3}
hij
构造foo=$(bar)
在子shell中运行命令bar
,如果只是在变量{{1}中运行命令bar
,则放置通常在终端中看到的输出。 }}