shell - 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我是新手。请不要笑。
解决方案
推荐阅读
- java - 如何在组件注释 bean 中使用会话或请求范围的 bean?
- logstash - Logstash / Kibana:向 Kibana 中的现有索引添加新字段
- c++ - Logcat on(嵌入式)测试固件
- css - 如何在 Angular 中为灯箱设置白色背景颜色?
- c# - 在 3DEXPERIENCE 宏中将零件插入装配体
- scala - 在 scala continuation 中,如何以 CPS 形式编写循环?
- c - 如何在 c 或 asm 中切换到 Super VGA?
- c++ - 二叉搜索树内的嵌套节点结构返回值问题c ++
- r - 当变量/列的数量总是不同时,用 plotly 绘制折线图
- javascript - 我尝试在 React 中安装 SVGR 后 npm start 出错