将bash脚本重定向到/ dev / null不执行?

时间:2012-06-12 19:46:15

标签: bash exec

所以我对bash很新,我正在为build-essentialOpenSSL制作安装程序。问题是它始终在第一个exec行之后停止。这是我的代码:

#!/bin/bash
echo "Installing build-essential"
exec sudo apt-get install build-essential > /dev/null 2>&1
echo "Finished installing build-essential"
echo ""

echo "Installing OpenSSL"
exec sudo apt-get install openssl > /dev/null 2>&1
echo "Finished installing OpenSSL"
echo ""

echo "Updates complete!"

这是输出:

Installing build-essential
[sudo] password for matthew:

请记住,我刚开始几个小时前。抱歉转储问题。

1 个答案:

答案 0 :(得分:3)

exec永远不会返回到调用脚本。它使用exec之后的命令替换当前进程。只需完全删除exec,让apt-get像任何其他命令一样运行。

注意:exec使用返回调用脚本,例如执行I / O重定向的那些。