微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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))            

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐