linux – bash命令可以打开一个命令或另一个命令

我正在使用两种不同的操作系统.

>对于MacOS:打开file.pdf(它在Mac中的认pdf程序中打开pdf)
> for Linux:xdg-open file.pdf(在Linux中也是如此)

如果我交换命令它不起作用.
是否有任何单行命令集如下:

> open file.pdf或xdg-open file.pdf

我想要一个适用于它们的命令(或命令)而不显示任何错误.
我需要此命令的地方是make文件.

我有这样的makefile:

all:
open file.pdf
xdg-open file.pdf
other things ..

在makefile中,如何确保make命令不运行
Mac和Linux都出错?

感谢@rubiks,现在代码工作正常.
代码如下所示:

# set pdfviewer for linux and unix machines
####################################################

UNAME_S := $(shell uname -s)

$(info $$UNAME_S == $(UNAME_S))

ifeq ($(UNAME_S),Linux)
PDFVIEWER := xdg-open
else ifeq ($(UNAME_S),Darwin)
PDFVIEWER := open
else

$(error unsupported system: $(UNAME_S))
  endif
$(info $$PDFVIEWER == $(PDFVIEWER))
####################################################
# open the pdf file
default: all
    $(PDFVIEWER) my_pdf_filename.pdf    

解决方法:

如果您不介意调用shell,可以在Makefile中查询系统并相应地设置PDFVIEWER:

UNAME_S := $(shell uname -s)

$(info $$UNAME_S == $(UNAME_S))

ifeq ($(UNAME_S),Linux)
  PDFVIEWER := xdg-open
else ifeq ($(UNAME_S),Darwin)
  PDFVIEWER := open
else
  $(error unsupported system: $(UNAME_S))
endif

$(info $$PDFVIEWER == $(PDFVIEWER))            

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...