#!/bin/sh
host google.com>/dev/null
while [ $? -ne 0 ];
do
sleep 3
done
say "You are now connected to internet"
我猜$?与google.com> / dev / null相关联,使逻辑工作,但我对$的详细说明感兴趣?
提前致谢。
答案 0 :(得分:2)
我知道这听起来很迂腐,但$?
不是变量,而是一个值。 ?
是变量的名称,将$
放在前面会给出值。
现在,您可以在?
中搜索man bash
:
扩展到最近执行的前台管道的退出状态。
经常进行不必要的测试。 if
(和大多数shell)中的while
和bash
语句测试成功(true)或失败(false)。成功是?
的值为0的地方,而当它是某个其他数字(范围为1-255)时失败。 !
在很多语言中都意味着“不”,并颠覆了真相:
while ! host google.com>/dev/null
do
sleep 3
done
echo "You are now connected to internet"
(我必须使用echo
,不确定say
来自哪里,Perl?)