Bash 脚本 if - else 条件

Bash 脚本 if - else 条件

我想创建一个 bash 脚本,从互联网下载特定的安装程序,安装它,创建一个启动它的桌面文件,使其自动启动,然后删除安装程序,但有一些我想要的脚本去检查。这些东西是:

  • 安装程序是否存在(如果不存在,则下载它,否则将其设置为可执行)

  • 以前的安装是否存在(如果存在,则设置其卸载程序可执行文件,运行它并删除它留下的所有内容,否则转到下一步)

  • 通过 apt list 查看 gksu 包的状态 | grep gksu(如果已安装,则转到下一步,否则安装它)并且

  • gksu example.run 的输出(如果有“GNOME_SUDO_PASS”行,则重复 gksu example.run,否则转到下一步)

答案1

条件:安装程序 - ls 。 | grep example.runchmod +x pelda.run else wget download/link/of/example.run

据我理解,上面的内容可以翻译为:

if [ -f example.run ]
then
    chmod +x pelda.run
else
    wget download/link/of/example.run
fi

[ -f example.run ]是使用该命令的示例test。如果名为的文件example.run存在,则测试命令将返回代码设置为 0(表示 true)。如果没有,它会将返回码设置为 1(表示 false)。

条件:gksu - apt list --已安装 | grep gksu,如果!存在,则 sudo apt install gksu else gksu pelda.run

当我解释上面的内容时,它会翻译为:

if apt list --installed | grep gksu
then
    gksu pelda.run
else
    sudo apt install gksu
fi

在这里,我们使用的事实是grep根据是否找到匹配项来设置返回代码。 apt list --installed返回已安装软件包的列表。如果其输出任何位置包含字符串gksu,则grep设置返回码 0(表示 true)并then执行该子句。如果不存在,else则执行该子句。

相关内容