Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查程序是否已在linux上成功安装?_Linux_Ubuntu_Bin - Fatal编程技术网

如何检查程序是否已在linux上成功安装?

如何检查程序是否已在linux上成功安装?,linux,ubuntu,bin,Linux,Ubuntu,Bin,我有一个.bin文件,其中包含很多脚本,可以在Ubuntu上安装程序,也可以在通过终端安装后安装 sudo chmod u+x myprogram.bin ./myprogram 我在/usr/bin/myprogram中有它 我需要写一个程序,检查系统是否正确安装了一些程序。我该怎么做 以下任何一项都应该有效 $ command -v foo >/dev/null 2>&1 && echo "installed" || echo "not installe

我有一个.bin文件,其中包含很多脚本,可以在Ubuntu上安装程序,也可以在通过终端安装后安装

sudo chmod u+x myprogram.bin
./myprogram
我在/usr/bin/myprogram中有它


我需要写一个程序,检查系统是否正确安装了一些程序。我该怎么做

以下任何一项都应该有效

$ command -v foo >/dev/null 2>&1 && echo "installed" || echo "not installed"

$ type foo >/dev/null 2>&1 && echo "installed" || echo "not installed"

$ hash foo >/dev/null 2>&1 && echo "installed" || echo "not installed"
在你的情况下,你可以使用

$ command -v /usr/bin/myprogram >/dev/null 2>&1 && echo "installed" || echo "not installed" 
或者您可以创建如下函数

#!/usr/bin/env bash

installed()
{
  command -v "$1" >/dev/null 2>&1
}

# and then
if installed ls; then
     echo 'ls exists'
else
     echo 'ls not installed'
fi
示例:

$ command -v ls >/dev/null 2>&1 && echo "installed" || echo "not installed" 
installed

$ command -v foo >/dev/null 2>&1 && echo "installed" || echo "not installed" 
not installed
如果您已经知道应用程序/程序的完整路径,则以下任何一项都可以使用

$ test -x /bin/ls && echo 'installed' || echo 'not installed'
installed

$ [ -x /bin/ls ] && echo 'installed' || echo 'not installed'
installed

您需要定义“安装成功”对您的特定程序的确切含义(某些程序需要比其可执行文件更高的可用性,例如字体或配置文件)。顺便说一句,
/usr/bin/myprogram
可能会接受某些
--help
和/或
--version
程序选项