if 参考
与许多其他语言一样,PowerShell 提供了用于在脚本中有条件地执行代码的语句。 其中一个语句是 If 语句。 今天,我们将深入探讨 PowerShell 中最基本的命令之一。
案例使用解释,以下是部署virtualbox使用if参考解释
- if 判断检查系统中是否已经安装了 VirtualBox,如果没有则开始安装。
- 安装 VirtualBox 的依赖环境,包括 gcc、make、glibc、kernel-headers、kernel-devel、dkms、wget、net-tools、kernel、elfutils-libelf-devel、mesa-libGL 和 mesa-libGL-devel。
- 安装 Xfce 桌面环境和基础组件。
- 配置 Xfce 桌面环境的启动方式。
- 下载 VirtualBox 软件包和扩展包。
- 安装 VirtualBox 软件包和扩展包。
- 重启系统。
- 输出安装结果。
#!/bin/bash
# -*- coding: utf-8 -*-
# Author: CIASM
# update 2023/05/19
# 定义一个函数,用于安装 VirtualBox
install_virtualbox (){
    # 如果系统中没有安装 VBoxManage 命令
    if ! command -v VBoxManage &> /dev/null
	#if command -v VBoxManage >/dev/null 2>&1; then
    then
        # 定义一些变量
        directory=/root
        virtualbox_directory_check=/usr/lib/virtualbox/
        virtualbox_pack_url=http://download.virtualbox.org/virtualbox/7.0.6/
        virtualbox_extpack=Oracle_VM_VirtualBox_Extension_Pack-7.0.6-155176.vbox-extpack
        virtualbox_url=https://download.virtualbox.org/virtualbox/7.0.6/VirtualBox-7.0-7.0.6_155176_el8-1.x86_64.rpm
        # 检查上一条命令的返回值,如果成功则执行下面的命令
        if [ $? -eq 0 ];then 
            echo "VirtualBox Dependent environment install"
            # 安装一些依赖包
            yum install -y http://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
            dnf --enablerepo=epel -y install gcc make glibc kernel-headers kernel-devel dkms
            yum install -y wget net-tools 
            yum install -y kernel
            yum install -y elfutils-libelf-devel
            yum install -y mesa-libGL mesa-libGL-devel
            dnf --enablerepo=epel group -y install "Xfce" "base-x"
            echo "exec /usr/bin/xfce4-session" >> ~/.xinitrc
            #startx8
            echo "install VirtualBox"
            # 安装 VirtualBox
            yum install -y $virtualbox_url
            echo "download VirtualBox extension"
            # 下载 VirtualBox 扩展包
            wget -N -P $directory  $virtualbox_pack_url/$virtualbox_extpack
            echo "reboot system"
            # 重启系统
            reboot
            echo -e "\033[32mThe virtualbox Install Success...\033[0m" 
        else
            echo -e "\033[33mThe virtualbox Install Failed...\033[0m" 
            exit 1
        fi
    else
        echo -e "\033[31mThe virtualbox Install already...\033[0m"
    fi
}
 
# 定义一个主函数,用于调用安装 VirtualBox 的函数
main (){
    install_virtualbox
}
 
# 调用主函数
mainif 段案例解释说明
- 第一行代码中的 `! command -v VBoxManage &> /dev/null` 表示检查是否已经安装了 VBoxManage 命令行工具。如果该命令不存在,则条件成立,执行后续操作。
- 第二行代码中的 `command -v VBoxManage >/dev/null 2>&1` 与第一行代码的作用相同,但是使用了不同的语法。如果该命令存在,则条件成立,执行后续操作。
if ! command -v VBoxManage &> /dev/null
then
if command -v VBoxManage >/dev/null 2>&1; then
then检查安装信息段解释说明
- - echo -e "\033[32mThe virtualbox Install Success...\033[0m":如果VirtualBox安装成功,输出绿色字体的“The virtualbox Install Success...”提示信息。
- - else:如果VirtualBox安装失败,则执行下面的语句。
- - echo -e "\033[33mThe virtualbox Install Failed...\033[0m":输出黄色字体的“The virtualbox Install Failed...”提示信息。
- - exit 1:退出脚本并返回错误代码1。
- - if [ -z "$(which virtualbox)" ]:检查系统中是否已经安装了VirtualBox,如果没有安装,则执行下面的语句。
- - wget https://download.virtualbox.org/virtualbox/6.1.26/virtualbox-6.1_6.1.26-145957~Ubuntu~eoan_amd64.deb:从VirtualBox官网下载VirtualBox的deb安装包。
- - sudo dpkg -i virtualbox-6.1_6.1.26-145957~Ubuntu~eoan_amd64.deb:使用dpkg命令安装VirtualBox。
- - if [ $? -eq 0 ]:检查上一条命令的执行结果,如果返回值为0,则表示安装成功。
- - else:如果安装失败,则执行下面的语句。
- - echo -e "\033[33mThe virtualbox Install Failed...\033[0m":输出黄色字体的“The virtualbox Install Failed...”提示信息。
- - exit 1:退出脚本并返回错误代码1。
- - else:如果VirtualBox已经安装,则执行下面的语句。
- - echo -e "\033[31mThe virtualbox Install already...\033[0m":输出红色字体的“The virtualbox Install already...”提示信息。
        echo -e "\033[32mThe virtualbox Install Success...\033[0m" 
        else
            echo -e "\033[33mThe virtualbox Install Failed...\033[0m" 
            exit 1
        fi
    else
        echo -e "\033[31mThe virtualbox Install already...\033[0m"
    fi



















