我正在尝试编写一个脚本,它将使用apt下载git,并且在成功下载git后我想为git设置配置。我写了一个完成这项工作的脚本。但我很想知道有没有办法知道git安装是否正确完成。如果安装了git,那么我将设置配置,否则我将重试或者显示错误消息。
我的代码:
#!/bin/bash
# Read Password
echo -n Sudo Password:
read -s password
# Run Command
setup_git_config(){
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
}
install_git(){
echo $password | sudo -S apt-get install git -y
# here i want to check above command successfully ran or not
setup_git_config
}
#Execute commands
install_git
我问的是这个问题,因为我想编写一个脚本来安装一些基本的程序和配置。
更新:
install_git(){
typeset ret_code
ret_code=$?
echo 'xyz' | sudo -S apt-get install git -y
if [ $ret_code != 0 ]; then
printf "Error " $ret_code
exit $ret_code
fi
echo $ret_code #always echo 0
setup_git_config
}
始终打印0
答案 0 :(得分:2)
由于您需要apt-get的返回码,请替换:
ret_code=$?
echo 'xyz' | sudo -S apt-get install git -y
使用:
echo 'xyz' | sudo -S apt-get install git -y
ret_code=$?
返回代码仅在命令执行后可用。因此,您必须在apt-get运行之后,而不是在运行之前捕获$?
的值。
apt-get设置返回代码为0(成功)或100(错误)。
在命令(例如echo "$password"
)中输入密码意味着密码将以纯文本形式提供给可以运行ps
的计算机上的任何人。删除密码可能是更好的做法,而是使用NOPASSWD选项将apt-get命令添加到sudoers。