#!/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 相关联,使逻辑工作,但我对 $? 的详细描述感兴趣
提前致谢。
我知道这听起来很迂腐,但$?
它不是一个变量,而是一个值。 ?
是变量的名称,放在$
前面给出值。
现在您可以搜索?
in man bash
:
扩展到最近执行的前台管道的退出状态。
它经常被不必要地测试。 if
and (和大多数 shell)while
中的语句bash
测试成功(真)或失败(假)。成功是?
0 的值,失败是其他数字(范围为 1-255)。 !
和许多语言一样,意思是“不”,并且颠倒了事实:
while ! host google.com>/dev/null
do
sleep 3
done
echo "You are now connected to internet"
(我不得不使用echo
,不知道say
从哪里来,Perl?)