我是bash脚本的新手,我正在尝试编写一个脚本来检查以太网设备是否已启动,如果是,则退出脚本。 这不符合预期,也许有人可以给我一个提示。
我启动脚本,然后插入我的设备,脚本似乎挂断了终端。它没有回到命令行。
当设备已插入并且以太网开发已启动时,脚本运行完美。然后它回应'Connected'并将我抛回命令行。
#! /bin/sh
t1=$(ifconfig | grep -o enxca1aea4347b1)
t2='enxca1aea4347b1'
while [ "$t1" != "$t2" ];
do
sleep 1;
done
echo "Connected"
exit 0
答案 0 :(得分:3)
你甚至不需要进行比较;只需检查int[] a = b.Skip(2)
.Where(c => c % 4 == (int) Cards.CardSuits.Club)
.ToArray();
的退出状态。
grep
事实上,您甚至不需要t2='enxca1aea4347b1'
until ifconfig | grep -q "$t2"; do
sleep 1;
done
echo "Connected"
exit 0
:
grep
答案 1 :(得分:2)
你已经进行了无限循环,因为你没有在while语句中更新$t1
的值。
相反,请尝试:
#! /bin/sh
t1=$(ifconfig | grep -o enxca1aea4347b1)
t2='enxca1aea4347b1'
while [ "$t1" != "$t2" ];
do
sleep 1;
t1=$(ifconfig | grep -o enxca1aea4347b1)
done
echo "Connected"
exit 0