首页 > 解决方案 > Linux Shell 中 if 语句中的 in 子句

问题描述

我正在尝试检查系统上是否安装了 python。如果没有,则安装它并在机器上运行给定的代码。我们有 Linux 服务器,所有服务器都需要执行此脚本。

我在这里遇到问题,我的 if 语句不起作用。我不知道为什么。我正在尝试查看 python --version 的回显是否返回“未找到”,但字符串会很大,所以我正在检查子字符串。是否有任何“IN”声明?

以下是我的代码。

#!/bin/sh

# Author : Sushrut Guruji
# Copyright (c) sushrut_guruji
# Script follows here:
INSTALL=$(python3 --version)
PyScriptPath="/PyScripts"

echo $INSTALL
if [[$INSTALL=~*not*found]]
then
        echo 'in if'
        sudo apt-get install python3.9
        sudo ln -s /usr/bin/python3 /usr/bin/python
        sudo apt install -y python3-pip
        sudo ln -s /usr/bin/pip3 /usr/bin/pi
else
        echo "in else"
fi
cd $PyScriptPath
sudo pip install -r requriements.txt

PS我是新手。请不要笑。

标签: shell

解决方案


推荐阅读