我想知道哪种方法是正确的(更好,更快,更合适)。

我正在编写一个脚本,该脚本将在xfce菜单中为二进制列表创建一个条目,仅当该二进制文件安装在系统上(基于Linux arch)时。

我应该这样检查二进制文件吗

Check if a program exists from a Bash script

还是应该检查/usr/share/中是否包含包含二进制文件的目录?

if [ -d "$DIRECTORY" ]; then

谢谢

最佳答案

这是我的两分钱:

根据您的需求定制的链接页面上的测试将是“更好”的测试。例如:

command -v foo >/dev/null 2>&1 || your failure code here

这将比仅检查目录是否存在(if [ -d "$DIRECTORY" ]; then)优越,因为目录可能存在,但是命令由于其他原因而可能失败,因此使XFCE菜单上的链接无效。

因此,在我看来,仅检查目录是否存在是次等的,因为其他测试保证了该命令可以执行。

关于linux - Bash : Checking binary vs checking directory,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43722869/

10-16 07:20