我正在尝试写一个脚本。在脚本的开头,我希望它检查互联网连接,然后继续,否则脚本应该停止并显示消息“请检查您的互联网”。我是 bash 编程新手,这就是为什么我不确定这里应该使用“if-then-else”还是“while”。这是我的脚本:
#!/bin/bash
if
ping -c 1 google.com >& /dev/null
then
echo "INTERNET IS WORKING..."
else
echo "PLEASE CHECK YOUR INTERNET!"
fi
cd $HOME/download
pwd
在此脚本中,如果“if”语句失败,并且脚本运行“else”语句,我希望该脚本停止,而不是进一步执行“cd $HOME/download”和“pwd”。
我怎样才能在这个脚本中做到这一点?
答案1
#!/bin/bash
if ping -c 1 google.com >& /dev/null
then
echo "INTERNET IS WORKING..."
else
echo "PLEASE CHECK YOUR INTERNET!" >&2
exit 1
fi
cd "$HOME/download" || exit 2
pwd
我也改变了
echo "PLEASE CHECK YOUR INTERNET!"
将错误消息打印到标准错误并
cd $HOME/download
到
cd "$HOME/download" || exit 2
如果失败则退出cd
,例如因为"$HOME/download"
不存在。没有更多警告报告外壳检查。