我使用安装脚本,这是我的两个安装命令:
function InstallChrome()
{
if ( which google-chrome 1>/dev/null ); then
echo "Chrome is installed"
return
fi
echo "Installing Google Chrome ..."
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -O chrome
sudo dpkg -i chrome
echo "Installed Google Chrome"
}
Run Code Online (Sandbox Code Playgroud)
所以基本上我会搜索安装的程序apt
,如果它存在,我不会运行apt
命令。
原因是它比让支票快得多apt
。
然而,这段代码不起作用:
function InstallSshServer()
{
if ( which openssh-server 1>/dev/null ); then
echo "SSH Server is installed"
return;
fi
echo "Installing SSH Server ..."
sudo apt install openssh-server -y
echo "Installed SSH Server"
}
Run Code Online (Sandbox Code Playgroud)
我的机器上安装的程序的名称是什么openssh-server
?如何检查它是否已经安装?
openssh-server
安装/usr/sbin/sshd
,你应该寻找它。软件包\xe2\x80\x99 不一定安装同名的二进制文件,并且它们安装的二进制文件\xe2\x80\x99 不一定位于所有用户\xe2\x80\x99 路径上。因此,明确地:
[ -x /usr/bin/sshd ] || sudo apt install -y openssh-server\n
Run Code Online (Sandbox Code Playgroud)\ndpkg -L
如果安装了给定的软件包,它将告诉您该软件包安装了哪些文件。二进制文件可以列出
dpkg -L openssh-server | grep bin/\n
Run Code Online (Sandbox Code Playgroud)\napt-file list
将显示包安装的文件,而无需先安装它。
顺便说一句,为什么不使用“which”呢?那该用什么呢?将为您的脚本提供有用的阅读。
\n 归档时间: |
|
查看次数: |
1296 次 |
最近记录: |